<?php
 /** @package Garennes - Fonctions de calcul des moyennes */
 
 /**
 * Initialisation du tableau des moyennes
 * @param int $id_classe Identifiant de la classe
 * @param int $nombre_disciplines Nombre de disciplines
 * @param int $min_periode Numero de debut de periode
 * @param int $max_periode Numero de fin de periode
 * @param int $aff_coeff Si = 1 alors initialise les moyennes coefficientees
 * @param int $titre 0:Nom et Prenom brut,!=0:Format HTML
 * @return array Tableau des moyennes
 */
 Function initialise_moyennes ($id_classe, $nombre_disciplines, $min_periode, $max_periode, $aff_coeff, $titre)
  {
   Global $id_sql ;
   // Recherche des eleves
   $resultat_el = SQL_commande ("SELECT id_eleve,nom,prenoms FROM eleves WHERE classe='".$id_classe."' AND exterieur>='0' ORDER BY nom,prenoms", $id_sql) ;
   $nombre_el = SQL_nbr_lignes ($resultat_el) ;
   $aff_ligne [0][0][0][0] = $nombre_el ;
   // Initialisation du tableau
   For ($num_disc = 1 ; $num_disc <= $nombre_disciplines ; $num_disc++)
    {
     For ($num_eleve = 0 ; $num_eleve < $aff_ligne [0][0][0][0] ; $num_eleve++)
      {
       $aff_ligne [$num_eleve][$num_disc][0][$periode] = "" ;
       $aff_ligne [$num_eleve][$num_disc][1][$periode] = "" ;
      }
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       $aff_ligne [0][$num_disc][2][$num_periode] = "-" ; // Minimum non coefficiente
       $aff_ligne [0][$num_disc][3][$num_periode] = "-" ; // Maximum non coefficiente
      }
     If ($aff_coeff == 1)
      {
       For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
        {
         $aff_ligne [0][$num_disc][4][$num_periode] = $maxi_min ; // Minimum coefficiente
         $aff_ligne [0][$num_disc][5][$num_periode] = $mini_max ; // Maximum coefficiente
        } 
      }
    }
   // Remplissage eleves
   For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
    {
     $lin_el = SQL_tableau_associatif ($resultat_el, "") ;
     // Recuperation id eleve
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       $aff_ligne [$num_eleve][0][0][$num_periode] = $lin_el ["id_eleve"] ;
      }
     // Mise en forme du nom et prenom
     If (StrPos ($lin_el ["prenoms"], " ")) { $prenom = SubStr ($lin_el ["prenoms"], 0, StrPos ($lin_el ["prenoms"], " ")) ; }
     Else { $prenom = $lin_el ["prenoms"] ; }
     If (StrPos ($prenom, "-"))
      {
       $position = StrPos ($prenom, "-")+1 ;
       $sprenom = SubStr ($prenom, $position, StrLen ($prenom)-$position) ;
       $prenom = premier_caractere ($prenom, "utf8").".-".premier_caractere ($sprenom, "utf8") ;
      }
     Else { $prenom = premier_caractere ($prenom, "utf8") ; }
     For ($num_periode = $min_periode ; $num_periode <= $max_periode+1 ; $num_periode++)
      {
       If ($titre == 0) { $aff_ligne [$num_eleve][0][1][$num_periode] = $lin_el ["nom"]." ".$prenom ; }
       Else { $aff_ligne [$num_eleve][0][1][$num_periode] = "<font size=\"".$theme [0][28]."\">&nbsp;".Str_Replace (" ", "&nbsp;", $lin_el ["nom"])."&nbsp;</font><font size=\"-5\"><i>".$prenom."</i>&nbsp;</font>" ; }
      }
    }
   Return $aff_ligne ;
  }
 
 /**
 * Fonction de remplissage de la table des moyennes
 * @param double $valeur Valeur de la note
 * @param int $x Numero eleve
 * @param int $y Numero discipline
 * @param int $mode 0=Pas de HTML,1=HTML
 * @param int $periode Numero de periode
 * @param int $option Indique si optionnelle ou pas
 * @param int $type_moyenne Indique quelle type on a : 0:Normale,1:Pourcentage
 * @param int $format_arrondi Format pour arrondir les nombres
 * @return array Table des moyennes modifiee
 */
 Function table_moyennes ($aff_ligne, $valeur, $x, $y, $mode, $periode, $option, $type_moyenne, $format_arrondi)
  {
   Global $code_aucune_note, $code_pas_discipline, $code_dispense ;
   Switch ($mode)
    {
     Case  1 : $espace = "&nbsp;" ; Break ;
     Default : $espace = " " ; Break ;
    }
   //echo $x."-".$y."-".$periode."-".$option."->".$valeur."(".$type_moyenne.")<br>" ;
   $aff_ligne [$x][$y][2][$periode] = $option ;
   If ($type_moyenne == 0)
    {
     If (Is_Numeric ($valeur))
      {
       $aff_ligne [$x][$y][0][$periode] = arrondi_note ($valeur, $format_arrondi) ;
       $aff_ligne [$x][$y][1][$periode] = $valeur ;
       If ($aff_ligne [0][$y][2][$periode] == "-") { $aff_ligne [0][$y][2][$periode] = $aff_ligne [0][$y][3][$periode] = $valeur ; }
       Else
        {
	 If ($valeur < $aff_ligne [0][$y][2][$periode]) { $aff_ligne [0][$y][2][$periode] = $valeur ; }
         If ($valeur > $aff_ligne [0][$y][3][$periode]) { $aff_ligne [0][$y][3][$periode] = $valeur ; }
	}
      }
     ElseIf ($valeur == $code_aucune_note)
      {
       $aff_ligne [$x][$y][0][$periode] = $espace."-".$espace ;
       $aff_ligne [$x][$y][1][$periode] = "" ;
      }
     ElseIf ($valeur == $code_pas_discipline)
      {
       $aff_ligne [$x][$y][0][$periode] = $espace."/".$espace ;
       $aff_ligne [$x][$y][1][$periode] = "" ;
      }
     ElseIf ($valeur == $code_dispense)
      {
       $aff_ligne [$x][$y][0][$periode] = $espace."D".$espace ; 
       $aff_ligne [$x][$y][1][$periode] = "" ;
      }
     Else
      {
       $aff_ligne [$x][$y][0][$periode] = $espace."/".$espace ;
       $aff_ligne [$x][$y][1][$periode] = "" ;
      }
    }
   ElseIf ($type_moyenne == 1)
    {
     $aff_ligne [$x][$y][0][$periode] = $valeur."%" ;
     $aff_ligne [$x][$y][1][$periode] = $valeur ;
    }
   Return $aff_ligne ;
  }
 
 /**
 * Determine l'ensemble des disciplines avec leurs caracteristiques
 * @param int $id_classe Identifiant de la classe
 * @param array $groupe_disc Ensemble des groupes de disciplines (Voir la fonction groupement_toutes_disciplines() [init.php] pour les champs)
 * @param int $millesime Millesime
 * @return array Description des disciplines
 *
 *      Format : ["general"]["nombre_disc"] = Nombre de disciplines
 *               ["general"]["id_classe"] = Identifiant classe
 *               ["general"]["millesime"] = Millesime
 *               ["general"]["ok_aff_grp"] = Affichage groupe existant
 *               ["general"]["ok_aff_sd"] = Affichage sous-disc existant
 *               ["general"]["ok_aff_nom"] = Affichage nom existant
 *
 *               Pour $i allant de 1 a ["general"]["nombre_disc"] :
 *                ["nombre_disc"][$i] = Nombre de disciplines
 *                ["disc"][$i] = Nom discipline
 *                ["id_disc"][$i] = Identifiant discipline
 *                ["id_sc"][$i] = Identifiant service classe
 *                ["id_sp"][$i] = Identifiant service prof
 *                ["id_gc"][$i] = Numero de groupe (0 pas de groupe)
 *                ["option"][$i] = Indique si option ou pas (0 pas une option)
 *                ["nom_groupe"][$i] = Nom du groupe
 *                ["id_ens"][$i] = Identifiant enseignant principal
 *                ["civ_ens"][$i] = Civilite enseignant principal
 *                ["nom_ens"][$i] = Nom enseignant principal
 *                ["pre_ens"][$i] = Prenom enseignant principal
 *                ["type_moyenne"][$i] = Type de moyenne (0=Normale,1=Pourcentage)
 *                ["type_discipline"][$i] = Type de discipline (0=Normale,2=Specifique)
 *                ["coeff_disc"][$i] = Coefficient discipline
 *                ["id_sous_disc"][$i] = Identifiant sous-discipline (si existe sinon 0)
 *                ["sous_disc"][$i] = Nom de la sous-discipline
 */
 Function determine_disciplines ($id_classe, $groupe_disc, $millesime)
  {
   Global $id_sql ;
   $compteur = 1 ;
   // Discipline CPE
   $tcpe = type_saisie_vie_scolaire ($id_classe) ;
   If (($tcpe == 3) Or ($tcpe == 4)) { $id_cpe = restaure_configuration_defaut ("SYSTEME_PARAM","STRUCTURE_VS","GROUPE_".$id_classe,1) ; }
   For ($i = 1 ; $i <= $groupe_disc [0][0] ; $i++)
    {
     $resultat_disc = structure_pedagogique ($id_classe, $groupe_disc [$i][0], $millesime) ;
     $table ["nombre_disc"][$i] = SQL_nbr_lignes ($resultat_disc) ;
     For ($j = 1 ; $j <= $table ["nombre_disc"][$i] ; $j++)
      {
       $table ["general"]["ok_aff_grp"] = $table ["general"]["ok_aff_sd"] = $table ["general"]["ok_aff_nom"] = 0 ;
       $lin_disc = SQL_tableau_associatif ($resultat_disc) ;
       // Mettre en tableau
       $table ["disc"][$compteur] = $lin_disc ["nom_bref"] ; // Enregistre le nom de la discipline
       $table ["id_disc"][$compteur] = $lin_disc ["id_discipline"] ; // Enregistre l'id de la discipline
       $table ["id_sc"][$compteur] = $lin_disc ["id_service_classe"] ; // Enregistre l'id du service classe
       $table ["id_sp"][$compteur] = $lin_disc ["id_service_prof"] ; // Enregistre l'id du service prof
       $table ["id_gc"][$compteur] = $lin_disc ["groupe_classe"] ; // Enregistre le numero de groupe (0 si pas de groupe)
       $table ["option"][$compteur] = $lin_disc ["optionnelle"] ; // Enregistre si discipine optionnelle (0 si pas une option)
       $table ["id_ens"][$compteur] = $lin_disc ["professeur"] ; // Enregistre l'id de l'enseignant
       $table ["type_moyenne"][$compteur] = $lin_disc ["type_moyenne"] ; // Enregistre le type de moyenne (0=Normale,1=Pourcentage)
       $table ["type_discipline"][$compteur] = $lin_disc ["type_discipline"] ; // Enregistre le type de discipline (0=Normale,3=Specifique)
       $table ["coeff_disc"][$compteur] = $lin_disc ["coefficient"] ; // Enregistre le coefficient de la discipline
       // Determine les caracteristiques enseignant principal
       If ($table ["id_ens"][$compteur] < 0)
        {
         // Alias
         $t = alias_enseignant_principal (-$table ["id_ens"][$compteur]) ;
	 If ($t [0] > 0)
	  {
           $table ["id_ens"][$compteur] = $t [0] ;
           $table ["civ_ens"][$compteur] = $t [1] ;
           $table ["nom_ens"][$compteur] = $t [2] ;
           $table ["pre_ens"][$compteur] = $t [3] ;
           $table ["general"]["ok_aff_nom"] = 1 ;
	  }
	 Else { $table ["id_ens"][$compteur] = 0 ; $table ["civ_ens"][$compteur] = $table ["nom_ens"][$compteur] = $table ["pre_ens"][$compteur] = "" ; }
        }
       Else
        {
         $ne = SQL_commande ("SELECT civilite,nom,prenom FROM utilisateurs WHERE id_utilisateur='".$table ["id_ens"][$compteur]."' LIMIT 1", $id_sql) ;
         If (SQL_nbr_lignes ($ne) == 1)
          {
           $nens = SQL_ligne_suivante ($ne) ;
           $table ["civ_ens"][$compteur] = $nens [0] ;
           $table ["nom_ens"][$compteur] = $nens [1] ;
           $table ["pre_ens"][$compteur] = $nens [2] ;
           $table ["general"]["ok_aff_nom"] = 1 ;
          }
         Else { $table ["civ_ens"][$compteur] = $table ["nom_ens"][$compteur] = $table ["pre_ens"][$compteur] = "" ; }
        }
       // Sous-discipline
       If ($lin_disc ["sous_discipline"] > 0)
        {
         $table ["id_sous_disc"][$compteur] = $lin_disc ["sous_discipline"] ;
         $n_s_disc = SQL_commande ("SELECT nom FROM sous_disciplines WHERE id_sous_discipline='".$table ["id_sous_disc"][$compteur]."' LIMIT 1", $id_sql) ;
	 If (SQL_nbr_lignes ($n_s_disc) == 1)
	  {
           $nsd = SQL_ligne_suivante ($n_s_disc) ;
           $table ["sous_disc"][$compteur] = $nsd [0] ;
           $table ["general"]["ok_aff_sd"] = 1 ;
	  }
	 Else { $table ["sous_disc"][$compteur] = "" ; }
        }
       Else { $table ["id_sous_disc"][$compteur] = 0 ; $table ["sous_disc"][$compteur] = "" ; }
       // Groupe si existe
       If ($table ["id_gc"][$compteur])
        {
         $n_groupe = SQL_commande ("SELECT code_groupe FROM groupes_classe WHERE id_groupe_classe='".$table ["id_gc"][$compteur]."' LIMIT 1", $id_sql) ;
	 If (SQL_nbr_lignes ($n_groupe) == 1)
	  {
           $ng = SQL_ligne_suivante ($n_groupe) ;
           $table ["nom_groupe"][$compteur] = $ng [0] ;
           $table ["general"]["ok_aff_grp"] = 1 ;
	  }
	 Else { $table ["nom_groupe"][$compteur] = "" ; }
        }
       Else { $table ["nom_groupe"][$compteur] = "" ; }
       $compteur++ ;
      }
     // Ajout vie scolaire
     If (IsSet ($id_cpe) And (($id_cpe == $i) Or (($id_cpe == 0) And ($i == 1))) And (($tcpe == 3) Or ($tcpe == 4)))
      {
       $table ["nombre_disc"][$i]++ ;
       $table ["disc"][$compteur] = "VIE SC" ; // Enregistre le nom de la discipline
       $table ["id_disc"][$compteur] = -1 ; // Enregistre l'id de la discipline
       $table ["id_sc"][$compteur] = -1 ; // Enregistre l'id du service classe
       $table ["id_sp"][$compteur] = -1 ; // Enregistre l'id du service prof
       $table ["id_gc"][$compteur] = -1 ; // Enregistre le numero de groupe (0 si pas de groupe, -1 si vie scolaire)
       $table ["id_ens"][$compteur] = id_cpe_par_id_classe ($id_classe) ; // Enregistre l'id du CPE
       $ne = SQL_commande ("SELECT civilite,nom,prenom FROM utilisateurs WHERE id_utilisateur='".$table ["id_ens"][$compteur]."' LIMIT 1", $id_sql) ;
       If (SQL_nbr_lignes ($ne) == 1)
        {
         $nens = SQL_ligne_suivante ($ne) ;
         $table ["civ_ens"][$compteur] = $nens [0] ;
         $table ["nom_ens"][$compteur] = $nens [1] ;
         $table ["pre_ens"][$compteur] = $nens [2] ;
         $ok_aff_nom = 1 ;
        }
       $table ["coeff_disc"][$compteur] = coefficient_discipline_vie_scolaire ($id_classe) ;
       $table ["id_sous_disc"][$compteur] = 0 ;
       $table ["sous_disc"][$compteur] = "" ;
       $table ["nom_groupe"][$compteur] = "" ;
       $compteur++ ;
      }
    }
   $compteur-- ;
   $table ["general"]["nombre_disc"] = $compteur ;
   $table ["general"]["id_classe"] = $id_classe ;
   $table ["general"]["millesime"] = $millesime ;
   Return $table ;
  }
  
 /**
 * Fonction qui recherche et attribut les moyennes
 * @param array $aff_ligne Table des moyennes
 * @param int $type_moyenne Type de moyenne (voir constantes)
 * @param int $min_periode Numero de periode minimum (debut)
 * @param int $max_periode Numero de periode maximum (fin)
 * @param array $t_disc Table des disciplines (voir fonction determine_disciplines () pour les champs)
 * @param array $nom_periode Periodes
 * @param int $format_arrondi Format pour arrondir les nombres
 * @param int $mode 0=Pas de HTML,1=HTML
 * @param string $espace Espace HTML ou espace "VRAI"
 * @return array Table des moyennes modifiee
 */
 Function attribution_moyennes ($aff_ligne, $type_moyenne, $min_periode, $max_periode, $t_disc, $nom_periode, $format_arrondi, $mode, $espace)
  {
   Global $id_sql ;
   $millesime = millesime (0) ;
   $nombre_el = $aff_ligne [0][0][0][0] ;
   For ($num_disc = 1 ; $num_disc <= $t_disc ["general"]["nombre_disc"] ; $num_disc++)
    {
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       If ($t_disc ["id_disc"][$num_disc] > 0)
        {
	 // Discipline non vie scolaire
	 // Recherche des eleves
	 $eleves = eleves_par_service_classe ($t_disc ["id_sp"][$num_disc]) ;
         // Est-ce que la moyenne est enregistree ?
         $res = SQL_commande ("SELECT ok FROM calcul_moyenne WHERE classe='".$t_disc ["general"]["id_classe"]."' AND periode='".$num_periode."' AND service_prof='".$t_disc ["id_sp"][$num_disc]."'
	                          AND service_classe='".$t_disc ["id_sc"][$num_disc]."' AND millesime='".$t_disc ["general"]["millesime"]."' LIMIT 1", $id_sql) ;
         $ok = 0 ;
         If (SQL_nbr_lignes ($res) == 1)
          {
           $r = SQL_ligne_suivante ($res) ;
           $ok = (integer)$r [0] ;
           If ($ok == 1)
            {
	     // Oui : A prendre
	     //If ($droit_courant == $droit_prof) { $condition = "exterieur>='0'" ; } Else { $condition = "exterieur!='1'" ; }
             $res_moy = SQL_commande ("SELECT DISTINCT m.eleve,m.valeur FROM moyennes m,eleves e
                                        WHERE e.classe='".$t_disc ["general"]["id_classe"]."' AND m.eleve=e.id_eleve AND e.exterieur='0'
	  			          AND m.periode='".$num_periode."' AND m.service_prof='".$t_disc ["id_sp"][$num_disc]."'
					  AND m.service_classe='".$t_disc ["id_sc"][$num_disc]."' AND m.type='".$type_moyenne."' AND e.millesime='".$t_disc ["general"]["millesime"]."'
				     ORDER BY e.nom,e.prenoms", $id_sql) ;
             $nbr_moyennes = SQL_nbr_lignes ($res_moy) ;
             If ($nbr_moyennes > 0)
              {
	       /*
               // On parcourt les notes et on enregistre
               $r_m = SQL_ligne_suivante ($res_moy) ;
	       $numero_eleve = 1 ;
	       if ($t_disc ["id_sp"][$num_disc] == 2375) { echo $aff_ligne [0][0][0][0]."<bR>" ; }
	       // Apparternance classe ?
	       $ok_clasee = 0 ;
	       For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
                {
		 If ($r_m [0] == $aff_ligne [$num_eleve][0][0][$num_periode]) { $ok_classe = 1 ; }
		}
               For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
                {
		 if ($t_disc ["id_sp"][$num_disc] == 2375) { echo $r_m [0]." == ".$aff_ligne [$num_eleve][0][0][$num_periode]."<br>" ; }
                 If ($r_m [0] == $aff_ligne [$num_eleve][0][0][$num_periode])
		  {
		   If ($r_m [0] == $eleves [$numero_eleve])
                    {
		     if ($t_disc ["id_sp"][$num_disc] == 2375) { echo $aff_ligne."-".$r_m [1]."-".$num_eleve."-".$num_disc."-".$mode."-".$num_periode."-".(estoptionnelle ($t_disc ["id_disc"][$num_disc], $t_disc ["general"]["id_classe"], $t_disc ["id_sc"][$num_disc]))."-".$t_disc ["type_moyenne"][$num_disc]."-".$format_arrondi."<br>" ; }
                     // C'est le bon eleve -> on enregistre
	             $aff_ligne = table_moyennes ($aff_ligne, $r_m [1], $num_eleve, $num_disc, $mode, $num_periode, estoptionnelle ($t_disc ["id_disc"][$num_disc], $t_disc ["general"]["id_classe"], $t_disc ["id_sc"][$num_disc]), $t_disc ["type_moyenne"][$num_disc], $format_arrondi) ;
                     // On prend le suivant
                     $r_m = SQL_ligne_suivante ($res_moy) ;
		     $numero_eleve++ ;
		    }
		   Else
		    {
		     // Pas de notes
                     $aff_ligne [$num_eleve][$num_disc][0][$num_periode] = $espace."-".$espace ;
		    }
                  }
                 Else
                  {
                   // Pas le bon eleve : on passe
                   $aff_ligne [$num_eleve][$num_disc][0][$num_periode] = $espace."-".$espace ;
		   // On prend le suivant
                   //$r_m = SQL_ligne_suivante ($res_moy) ;
                  }
                }
	       */
	       
	       For ($num_moy = 0 ; $num_moy < $nbr_moyennes ; $num_moy++)
	        {
		 $r_m = SQL_ligne_suivante ($res_moy) ;
		 $num_eleve = 1 ;
		 $ok_el_1 = 0 ;
		 While (($num_eleve <= $aff_ligne [0][0][0][0]) And ($ok_el_1 == 0))
		  {
		   If ($r_m [0] == $aff_ligne [$num_eleve][0][0][$num_periode])
		    {
		     $numero_eleve = 1 ;
		     $ok_el_2 = 0 ;
		     While (($numero_eleve <= $eleves [0]) And ($ok_el_2 == 0))
		      {
		       If ($r_m [0] == $eleves [$numero_eleve]) { $ok_el_2 = $numero_eleve ; }
		       $numero_eleve++ ;
		      }
		     If ($ok_el_2 != 0)
                      {
                       // C'est le bon eleve -> on enregistre
	               $aff_ligne = table_moyennes ($aff_ligne, $r_m [1], $num_eleve, $num_disc, $mode, $num_periode, estoptionnelle ($t_disc ["id_disc"][$num_disc], $t_disc ["general"]["id_classe"], $t_disc ["id_sc"][$num_disc]), $t_disc ["type_moyenne"][$num_disc], $format_arrondi) ;
		       $ok_el_1 = 1 ;
		      }
                    }
		   $num_eleve++ ;
                  }
		 If ($ok_el_1 == 0)
		  {
                   // Pas le bon eleve : on passe
                   $aff_ligne [$num_eleve][$num_disc][0][$num_periode] = $espace."-".$espace ;
		  }
		}
              }
             Else { $ok = 0 ; }
            }
	   Else { $ok = 0 ; }
          }
         If ($ok == 0)
          {
           // Non : Aucune note
	   $numero_eleve = 1 ;
           For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
            {
	     If ($aff_ligne [$num_eleve][0][0][$num_periode] == $eleves [$numero_eleve])
	      {
	       $ok = SQL_commande ("UPDATE calcul_moyenne SET ok='0' WHERE classe='".$t_disc ["general"]["id_classe"]."' AND periode='".$num_periode."' AND service_prof='".$t_disc ["id_sp"][$num_disc]."'
	                            AND service_classe='".$t_disc ["id_sc"][$num_disc]."' AND millesime='".$t_disc ["general"]["millesime"]."' LIMIT 1", $id_sql) ;
               If ($num_periode <= $nom_periode [1])
                {
                 $m = moyenne_el ($aff_ligne [$num_eleve][0][0][$num_periode], $t_disc ["general"]["id_classe"], $num_periode, $t_disc ["id_disc"][$num_disc], $t_disc ["id_sc"][$num_disc], $t_disc ["id_sp"][$num_disc], 0, $type_moyenne) ;
                }
               Else
                {
                 $m = moyenne_annuelle ($aff_ligne [$num_eleve][0][0][$num_periode], $t_disc ["general"]["id_classe"], $t_disc ["id_disc"][$num_disc], $t_disc ["id_sc"][$num_disc], $t_disc ["id_sp"][$num_disc], 0, $type_moyenne) ;
		 //echo $aff_ligne [$num_eleve][0][0][$num_periode]."-".$t_disc ["general"]["id_classe"]."-".$t_disc ["id_disc"][$num_disc]."-".$t_disc ["id_sc"][$num_disc]."-".$t_disc ["id_sp"][$num_disc]."-".$type_moyenne."->".$m."<br>" ;
                }
               $aff_ligne = table_moyennes ($aff_ligne, $m, $num_eleve, $num_disc, $mode, $num_periode, estoptionnelle ($t_disc ["id_disc"][$num_disc], $t_disc ["general"]["id_classe"], $t_disc ["id_sc"][$num_disc]), $t_disc ["type_moyenne"][$num_disc], $format_arrondi) ;
	       $numero_eleve++ ;
	      }
            }
          }
        }
       ElseIf ($t_disc ["id_disc"][$num_disc] == -1)
        {
         // Notes vie scolaire
         For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
          {
           $res = SQL_commande ("SELECT note FROM vie_scolaire WHERE eleve='".$aff_ligne [$num_eleve][0][0][$num_periode]."' AND periode='".$num_periode."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
           If (SQL_nbr_lignes ($res) == 1)
            {
             $r = SQL_ligne_suivante ($res) ;
             $aff_ligne = table_moyennes ($aff_ligne, $r [0], $num_eleve, $num_disc, $mode, $num_periode, 0, 0, $format_arrondi) ;
            }
           Else { $aff_ligne [$num_eleve][$num_disc][0][$num_periode] = $espace."-".$espace ; }
          }
        }
      }
    }
   Return $aff_ligne ;
  }
 
 /**
 * Fonction qui calcul toutes les moyennes
 * @param array $aff_ligne Table des moyennes
 * @param int $min_periode Numero de periode minimum (debut)
 * @param int $max_periode Numero de periode maximum (fin)
 * @param array $groupe_disc Ensemble des groupes de disciplines (Voir la fonction groupement_toutes_disciplines() [init.php] pour les champs)
 * @param array $t_disc Table des disciplines (voir fonction determine_disciplines () pour les champs)
 * @param int $type_moy_periode Type de calcul de la moyenne periodique
 * @param int $type_moy_annuelle Type de calcul de la moyenne annuelle
 * @param array $gestion Table de gestion (voir table 'etablissements')
 * @return array Ensemble des moyennes
 *         Format :
 *                 Moyennes eleves par discipline et periodes :
 *                  [$num_groupe][$num_disc][$num_periode][$num_eleve] = Moyenne eleve periodique par discipline (1)
 *                  [$num_groupe][$num_disc]["moy"][$num_eleve] = Moyenne eleve par discipline (2)
 *                  [$num_groupe][$num_disc][$num_periode]["moy"] = Moyenne disciplinaire par periode (3)
 *                  [$num_groupe][$num_disc][$num_periode]["min"] = Minimum disciplinaire par periode (4)
 *                  [$num_groupe][$num_disc][$num_periode]["max"] = Maximum disciplinaire par periode (5)
 *                  [$num_groupe][$num_disc][$num_periode]["ecart"] = Ecart type disciplinaire par periode (33)
 *                  [$num_groupe][$num_disc][$num_periode]["mediane"] = Mediane disciplinaire par periode (34)
 *                  [$num_groupe][$num_disc]["moy"]["moy"] = Moyenne disciplinaire annuelle (6)
 *                  [$num_groupe][$num_disc]["moy"]["min"] = Minimum disciplinaire annuelle (7)
 *                  [$num_groupe][$num_disc]["moy"]["max"] = Maximum disciplinaire annuelle (8)
 *                  [$num_groupe][$num_disc]["moy"]["ecart"] = Ecart type disciplinaire annuelle (35)
 *                  [$num_groupe][$num_disc]["moy"]["mediane"] = Mediane disciplinaire annuelle (36)
 *
 *                 Bilan annuel non coefficiente (Calcul depend du mode) :
 *                  ["moy_nc"]["moy"][$num_periode][$num_eleve] = Moyenne eleve periodique non coefficientee generale (9)
 *                  ["moy_nc"]["moy"]["moy"][$num_eleve] = Moyenne eleve annuelle non coefficientee generale (10)
 *                  ["moy_nc"]["rang"][$num_periode][$num_eleve] = Rang eleve periodique non coefficientee generale (49)
 *                  ["moy_nc"]["rang"]["moy"][$num_eleve] = Rang eleve annuelle non coefficientee generale (50)
 *                  ["moy_nc"]["moy"][$num_periode]["moy"] = Moyenne de la moyenne periodique non coefficientee generale (11)
 *                  ["moy_nc"]["moy"][$num_periode]["min"] = Minimum de la moyenne periodique non coefficientee generale (12)
 *                  ["moy_nc"]["moy"][$num_periode]["max"] = Maximum de la moyenne periodique non coefficientee generale (13)
 *                  ["moy_nc"]["moy"][$num_periode]["ecart"] = Ecart type de la moyenne periodique non coefficientee generale (37)
 *                  ["moy_nc"]["moy"][$num_periode]["mediane"] = Mediane de la moyenne periodique non coefficientee generale (38)
 *                  ["moy_nc"]["moy"]["moy"]["moy"] = Moyenne de la moyenne annuelle non coefficientee generale (14)
 *                  ["moy_nc"]["moy"]["moy"]["min"] = Minimum de la moyenne annuelle non coefficientee generale (15)
 *                  ["moy_nc"]["moy"]["moy"]["max"] = Maximum de la moyenne annuelle non coefficientee generale (16)
 *                  ["moy_nc"]["moy"]["moy"]["ecart"] = Ecart type de la moyenne annuelle non coefficientee generale (39)
 *                  ["moy_nc"]["moy"]["moy"]["mediane"] = Mediane de la moyenne annuelle non coefficientee generale (40)
 *
 *                 Bilan annuel coefficiente (Calcul depend du mode) :
 *                  ["moy_c"]["moy"][$num_periode][$num_eleve] = Moyenne eleve periodique coefficientee generale (17)
 *                  ["moy_c"]["moy"]["moy"][$num_eleve] = Moyenne eleve annuelle coefficientee generale (18)
 *                  ["moy_c"]["rang"][$num_periode][$num_eleve] = Rang eleve periodique coefficientee generale (51)
 *                  ["moy_c"]["rang"]["moy"][$num_eleve] = Rang eleve annuelle coefficientee generale (52)
 *                  ["moy_c"]["moy"][$num_periode]["moy"] = Moyenne de la moyenne periodique coefficientee generale (19)
 *                  ["moy_c"]["moy"][$num_periode]["min"] = Minimum de la moyenne periodique coefficientee generale (20)
 *                  ["moy_c"]["moy"][$num_periode]["max"] = Maximum de la moyenne periodique coefficientee generale (21)
 *                  ["moy_c"]["moy"][$num_periode]["ecart"] = Ecart type de la moyenne periodique coefficientee generale (41)
 *                  ["moy_c"]["moy"][$num_periode]["mediane"] = Mediane de la moyenne periodique coefficientee generale (42)
 *                  ["moy_c"]["moy"]["moy"]["moy"] = Moyenne de la moyenne annuelle coefficientee generale (22)
 *                  ["moy_c"]["moy"]["moy"]["min"] = Minimum de la moyenne annuelle coefficientee generale (23)
 *                  ["moy_c"]["moy"]["moy"]["max"] = Maximum de la moyenne annuelle coefficientee generale (24)
 *                  ["moy_c"]["moy"]["moy"]["ecart"] = Ecart type de la moyenne annuelle coefficientee generale (43)
 *                  ["moy_c"]["moy"]["moy"]["mediane"] = Mediane de la moyenne annuelle coefficientee generale (44)
 *
 *                 Moyenne par groupe de disciplines :
 *                 NON COEFFICIENTEE :
 *                  [$num_groupe]["moy_nc"][$num_periode][$num_eleve] = Moyenne periodique eleve par groupe de discipline non coefficientee (25)(9')
 *                  [$num_groupe]["moy_nc"]["moy"][$num_eleve] = Moyenne annuelle eleve par groupe de discipline non coefficientee (26)(10')
 *                  [$num_groupe]["rang_nc"][$num_periode][$num_eleve] = Rang periodique eleve par groupe de discipline non coefficientee (53)
 *                  [$num_groupe]["rang_nc"]["moy"][$num_eleve] = Rang annuelle eleve par groupe de discipline non coefficientee (54)
 *                  [$num_groupe]["moy_nc"][$num_periode]["moy"] = Moyenne de la moyenne generale par groupe de discipline non coefficientee (27)(11')
 *                  [$num_groupe]["moy_nc"][$num_periode]["min"] = Minimum de la moyenne generale par groupe de discipline non coefficientee (28)(12')
 *                  [$num_groupe]["moy_nc"][$num_periode]["max"] = Maximum de la moyenne generale par groupe de discipline non coefficientee (29)(13')
 *                  [$num_groupe]["moy_nc"][$num_periode]["ecart"] = Ecart type de la moyenne generale par groupe de discipline non coefficientee (45)
 *                  [$num_groupe]["moy_nc"][$num_periode]["mediane"] = Mediane de la moyenne generale par groupe de discipline non coefficientee (46)
 *                  [$num_groupe]["moy_nc"]["moy"]["moy"] = Moyenne de la moyenne annuelle par groupe de discipline non coefficientee (30)(14')
 *                  [$num_groupe]["moy_nc"]["moy"]["min"] = Minimum de la moyenne annuelle par groupe de discipline non coefficientee (31)(15')
 *                  [$num_groupe]["moy_nc"]["moy"]["max"] = Maximum de la moyenne annuelle par groupe de discipline non coefficientee (32)(16')
 *                  [$num_groupe]["moy_nc"]["moy"]["ecart"] = Ecart type de la moyenne annuelle par groupe de discipline non coefficientee (47)
 *                  [$num_groupe]["moy_nc"]["moy"]["mediane"] = Mediane de la moyenne annuelle par groupe de discipline non coefficientee (48)
 *                 COEFFICIENTEE :
 *                  [$num_groupe]["moy_c"][$num_periode][$num_eleve] = Moyenne periodique eleve par groupe de discipline coefficientee (25)(9')
 *                  [$num_groupe]["moy_c"]["moy"][$num_eleve] = Moyenne annuelle eleve par groupe de discipline coefficientee (26)(10')
 *                  [$num_groupe]["rang_c"][$num_periode][$num_eleve] = Rang periodique eleve par groupe de discipline coefficientee (53)
 *                  [$num_groupe]["rang_c"]["moy"][$num_eleve] = Rang annuelle eleve par groupe de discipline coefficientee (54)
 *                  [$num_groupe]["moy_c"][$num_periode]["moy"] = Moyenne de la moyenne generale par groupe de discipline coefficientee (27)(11')
 *                  [$num_groupe]["moy_c"][$num_periode]["min"] = Minimum de la moyenne generale par groupe de discipline coefficientee (28)(12')
 *                  [$num_groupe]["moy_c"][$num_periode]["max"] = Maximum de la moyenne generale par groupe de discipline coefficientee (29)(13')
 *                  [$num_groupe]["moy_c"][$num_periode]["ecart"] = Ecart type de la moyenne generale par groupe de discipline coefficientee (45)
 *                  [$num_groupe]["moy_c"][$num_periode]["mediane"] = Mediane de la moyenne generale par groupe de discipline coefficientee (46)
 *                  [$num_groupe]["moy_c"]["moy"]["moy"] = Moyenne de la moyenne annuelle par groupe de discipline coefficientee (30)(14')
 *                  [$num_groupe]["moy_c"]["moy"]["min"] = Minimum de la moyenne annuelle par groupe de discipline coefficientee (31)(15')
 *                  [$num_groupe]["moy_c"]["moy"]["max"] = Maximum de la moyenne annuelle par groupe de discipline coefficientee (32)(16')
 *                  [$num_groupe]["moy_c"]["moy"]["ecart"] = Ecart type de la moyenne annuelle par groupe de discipline coefficientee (47)
 *                  [$num_groupe]["moy_c"]["moy"]["mediane"] = Mediane de la moyenne annuelle par groupe de discipline coefficientee (48)
 * 54
 */
 Function calcul_moyennes ($aff_ligne, $min_periode, $max_periode, $groupe_disc, $t_disc, $type_moy_periode, $type_moy_annuelle, $max)
  {
   If (!IsSet ($max) Or !Is_Numeric ($max)) { Global $note_par_defaut ; $max = $note_par_defaut ; }
   $moitie = $max/2 ;
   // Initialisations
   For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
    {
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       $num_disc = 1 ;
       For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
        {
	 // 25-26-27-28-29-30-31-32 NC
	 $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] = $moy [$num_groupe]["moy_nc_coeff"][$num_periode][$num_eleve] = 0 ;
	 $moy [$num_groupe]["moy_nc"][$num_periode]["moy"] = $moy [$num_groupe]["moy_nc"][$num_periode]["moy_coeff"] = 0 ;
	 $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] = $moy [$num_groupe]["moy_nc"]["moy_coeff"][$num_eleve] = 0 ;
	 $moy [$num_groupe]["moy_nc"][$num_periode]["min"] = $moy [$num_groupe]["moy_nc"][$num_periode]["max"] = "-" ;
	 $moy [$num_groupe]["moy_nc"]["moy"]["moy"] = $moy [$num_groupe]["moy_nc"]["moy"]["moy_coeff"] = 0 ;
	 $moy [$num_groupe]["moy_nc"]["moy"]["min"] = $moy [$num_groupe]["moy_nc"]["moy"]["max"] = "-" ;
	 // 25-26-27-28-29-30-31-32 C
	 $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] = $moy [$num_groupe]["moy_c_coeff"][$num_periode][$num_eleve] = 0 ;
	 $moy [$num_groupe]["moy_c"][$num_periode]["moy"] = $moy [$num_groupe]["moy_c"][$num_periode]["moy_coeff"] = 0 ;
	 $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] = $moy [$num_groupe]["moy_c"]["moy_coeff"][$num_eleve] = 0 ;
	 $moy [$num_groupe]["moy_c"][$num_periode]["min"] = $moy [$num_groupe]["moy_c"][$num_periode]["max"] = "-" ;
	 $moy [$num_groupe]["moy_c"]["moy"]["moy"] = $moy [$num_groupe]["moy_c"]["moy"]["moy_coeff"] = 0 ;
	 $moy [$num_groupe]["moy_c"]["moy"]["min"] = $moy [$num_groupe]["moy_c"]["moy"]["max"] = "-" ;
	 
         For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
          {
	   // 2-3-4-5-6-7-8
	   $moy [$num_groupe][$num_disc]["moy"][$num_eleve] = $moy [$num_groupe][$num_disc]["coeff"][$num_eleve] = 0 ;
	   $moy [$num_groupe][$num_disc][$num_periode]["moy"] = $moy [$num_groupe][$num_disc][$num_periode]["coeff"] = 0 ;
	   $moy [$num_groupe][$num_disc][$num_periode]["min"] = $moy [$num_groupe][$num_disc][$num_periode]["max"] = "-" ;
	   $moy [$num_groupe][$num_disc]["moy"]["moy"] = $moy [$num_groupe][$num_disc]["moy"]["coeff"] = 0 ;
	   $moy [$num_groupe][$num_disc]["moy"]["min"] = $moy [$num_groupe][$num_disc]["moy"]["max"] = "-" ;
	   $num_disc++ ;
	  }
        }
       // 9-10-11-12-13-14-15-16
       $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] = $moy ["moy_nc"]["moy_coeff"][$num_periode][$num_eleve] = 0 ;
       $moy ["moy_nc"]["moy"]["moy"][$num_eleve] = $moy ["moy_nc"]["moy"]["moy_coeff"][$num_eleve] = 0 ;
       $moy ["moy_nc"]["moy"][$num_periode]["moy"] = $moy ["moy_nc"]["moy"][$num_periode]["moy_coeff"] = 0 ;
       $moy ["moy_nc"]["moy"][$num_periode]["min"] = $moy ["moy_nc"]["moy"][$num_periode]["max"] = "-" ;
       $moy ["moy_nc"]["moy"]["moy"]["moy"] = $moy ["moy_nc"]["moy"]["moy"]["moy_coeff"] = 0 ;
       $moy ["moy_nc"]["moy"]["moy"]["min"] = $moy ["moy_nc"]["moy"]["moy"]["max"] = "-" ;
       // 17-18-19-20-21-22-23-24
       $moy ["moy_c"]["moy"][$num_periode][$num_eleve] = $moy ["moy_c"]["moy_coeff"][$num_periode][$num_eleve] = 0 ;
       $moy ["moy_c"]["moy"]["moy"][$num_eleve] = $moy ["moy_c"]["moy"]["moy_coeff"][$num_eleve] = 0 ;
       $moy ["moy_c"]["moy"][$num_periode]["moy"] = $moy ["moy_c"]["moy"][$num_periode]["moy_coeff"] = 0 ;
       $moy ["moy_c"]["moy"][$num_periode]["min"] = $moy ["moy_c"]["moy"][$num_periode]["max"] = "-" ;
       $moy ["moy_c"]["moy"]["moy"]["moy"] = $moy ["moy_c"]["moy"]["moy"]["moy_coeff"] = 0 ;
       $moy ["moy_c"]["moy"]["moy"]["min"] = $moy ["moy_c"]["moy"]["moy"]["max"] = "-" ;
      }
    }
   
   // Calcul de toutes les moyennes disciplinaires
   For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
    {
     $num_disc = 1 ;
     For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
      {
       For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
        {
         For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
          {
           // Moyenne eleve disciplinaire periodique (1)
           $moy [$num_groupe][$num_disc][$num_periode][$num_eleve] = $aff_ligne [$num_eleve][$num_disc][0][$num_periode] ;
           If (Is_Numeric ($aff_ligne [$num_eleve][$num_disc][1][$num_periode]))
            {
	     // Moyenne disciplinaire par periode temporaire (3)
	     $moy [$num_groupe][$num_disc][$num_periode]["moy"] += $aff_ligne [$num_eleve][$num_disc][1][$num_periode] ;
	     $moy [$num_groupe][$num_disc][$num_periode]["coeff"]++ ;
	     // Minimum disciplinaire par periode (4) et Maximum disciplinaire par periode (5)
	     If ($moy [$num_groupe][$num_disc][$num_periode]["min"] == "-")
	      {
	       $moy [$num_groupe][$num_disc][$num_periode]["min"] = $moy [$num_groupe][$num_disc][$num_periode]["max"] = $aff_ligne [$num_eleve][$num_disc][1][$num_periode] ;
	      }
	     Else
	      {
	       If ($aff_ligne [$num_eleve][$num_disc][1][$num_periode] < $moy [$num_groupe][$num_disc][$num_periode]["min"]) { $moy [$num_groupe][$num_disc][$num_periode]["min"] = $aff_ligne [$num_eleve][$num_disc][1][$num_periode] ; }
	       If ($aff_ligne [$num_eleve][$num_disc][1][$num_periode] > $moy [$num_groupe][$num_disc][$num_periode]["max"]) { $moy [$num_groupe][$num_disc][$num_periode]["max"] = $aff_ligne [$num_eleve][$num_disc][1][$num_periode] ; }
	      }
	     // Moyenne eleve disciplinaire annuelle temporaire (2)
	     $moy [$num_groupe][$num_disc]["moy"][$num_eleve] += $aff_ligne [$num_eleve][$num_disc][1][$num_periode] ;
	     $moy [$num_groupe][$num_disc]["coeff"][$num_eleve]++ ;
	     // Si ce n'est pas une option ou si la valeur est superieure a la moitie alors calculer la moyenne annuelle et periodique
	     If (($aff_ligne [$num_eleve][$num_disc][2][$num_periode] == 0) Or (($aff_ligne [$num_eleve][$num_disc][2][$num_periode] == 1) And ($aff_ligne [$num_eleve][$num_disc][1][$num_periode] > $moitie)))
	      {
	       // Moyenne periodique eleve par groupe de discipline non coefficientee temporaire (25)(9')
	       $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] += $aff_ligne [$num_eleve][$num_disc][1][$num_periode] ;
	       $moy [$num_groupe]["moy_nc_coeff"][$num_periode][$num_eleve]++ ;
	       // Moyenne periodique eleve par groupe de discipline coefficientee temporaire (25)(9')
	       $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] += $aff_ligne [$num_eleve][$num_disc][1][$num_periode]*$t_disc ["coeff_disc"][$num_disc] ;
	       $moy [$num_groupe]["moy_c_coeff"][$num_periode][$num_eleve] += $t_disc ["coeff_disc"][$num_disc] ;
	       // Moyenne de la moyenne generale par groupe de discipline non coefficientee temporaire (27)(11')
	       $moy [$num_groupe]["moy_nc"][$num_periode]["moy"] += $aff_ligne [$num_eleve][$num_disc][1][$num_periode] ;
	       $moy [$num_groupe]["moy_nc"][$num_periode]["moy_coeff"]++ ;
	       // Moyenne de la moyenne generale par groupe de discipline coefficientee temporaire (27)(11')
	       $moy [$num_groupe]["moy_c"][$num_periode]["moy"] += $aff_ligne [$num_eleve][$num_disc][1][$num_periode]*$t_disc ["coeff_disc"][$num_disc] ;
	       $moy [$num_groupe]["moy_c"][$num_periode]["moy_coeff"] += $t_disc ["coeff_disc"][$num_disc] ;
	      }
            }
          }
         // Moyenne eleve disciplinaire annuelle (2)
         If ($moy [$num_groupe][$num_disc]["coeff"][$num_eleve] > 0)
          {
  	   $moy [$num_groupe][$num_disc]["moy"][$num_eleve] = $moy [$num_groupe][$num_disc]["moy"][$num_eleve]/$moy [$num_groupe][$num_disc]["coeff"][$num_eleve] ;
	   // Moyenne disciplinaire annuelle temporaire (6)
	   $moy [$num_groupe][$num_disc]["moy"]["moy"] += $moy [$num_groupe][$num_disc]["moy"][$num_eleve] ;
	   $moy [$num_groupe][$num_disc]["moy"]["coeff"]++ ;
	   // Minimum disciplinaire annuelle (7) et Maximum disciplinaire annuelle (8)
	   If ($moy [$num_groupe][$num_disc]["moy"]["min"] == "-")
	    {
	     $moy [$num_groupe][$num_disc]["moy"]["min"] = $moy [$num_groupe][$num_disc]["moy"]["max"] = $moy [$num_groupe][$num_disc]["moy"][$num_eleve] ;
	    }
	   Else
	    {
	     If ($moy [$num_groupe][$num_disc]["moy"][$num_eleve] < $moy [$num_groupe][$num_disc]["moy"]["min"]) { $moy [$num_groupe][$num_disc]["moy"]["min"] = $moy [$num_groupe][$num_disc]["moy"][$num_eleve] ; }
	     If ($moy [$num_groupe][$num_disc]["moy"][$num_eleve] > $moy [$num_groupe][$num_disc]["moy"]["max"]) { $moy [$num_groupe][$num_disc]["moy"]["max"] = $moy [$num_groupe][$num_disc]["moy"][$num_eleve] ; }
	    }
	   // Moyenne annuelle eleve par groupe de discipline non coefficientee temporaire (26)(10')
	   $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] += $moy [$num_groupe][$num_disc]["moy"][$num_eleve] ;
	   $moy [$num_groupe]["moy_nc"]["moy_coeff"][$num_eleve]++ ;
	   // Moyenne annuelle eleve par groupe de discipline coefficientee temporaire (26)(10')
	   $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] += $moy [$num_groupe][$num_disc]["moy"][$num_eleve]*$t_disc ["coeff_disc"][$num_disc] ;
	   $moy [$num_groupe]["moy_c"]["moy_coeff"][$num_eleve] += $t_disc ["coeff_disc"][$num_disc] ;
	   If ($type_moyenne [$num_disc] == 1) { $moy [$num_groupe][$num_disc]["moy"][$num_eleve] .= "%" ; }
	  }
         Else { $moy [$num_groupe][$num_disc]["moy"][$num_eleve] = $espace."-".$espace ; }
	 $num_disc++ ;
        }
       // Moyennes periodiques groupe de disciplines
       For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
        {
         // Moyenne periodique eleve par groupe de discipline non coefficientee (25)(9')
         If ($moy [$num_groupe]["moy_nc_coeff"][$num_periode][$num_eleve] > 0)
          {
	   $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] = $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve]/$moy [$num_groupe]["moy_nc_coeff"][$num_periode][$num_eleve] ;
	   // Moyenne de la moyenne generale par groupe de discipline non coefficientee temporaire (27)(11')
	   $moy [$num_groupe]["moy_nc"][$num_periode]["moy"] += $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] ;
	   $moy [$num_groupe]["moy_nc"][$num_periode]["moy_coeff"]++ ;
	   // Minimum de la moyenne generale par groupe de discipline non coefficientee (28)(12') et Maximum de la moyenne generale par groupe de discipline non coefficientee (29)(13')
	   If ($moy [$num_groupe]["moy_nc"][$num_periode]["min"] == "-")
	    {
	     $moy [$num_groupe]["moy_nc"][$num_periode]["min"] = $moy [$num_groupe]["moy_nc"][$num_periode]["max"] = $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] ;
	    }
	   Else
	    {
	     If ($moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] < $moy [$num_groupe]["moy_nc"][$num_periode]["min"]) { $moy [$num_groupe]["moy_nc"][$num_periode]["min"] = $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] ; }
	     If ($moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] > $moy [$num_groupe]["moy_nc"][$num_periode]["max"]) { $moy [$num_groupe]["moy_nc"][$num_periode]["max"] = $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] ; }
	    }
	  }
         Else { $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] = $espace."-".$espace ; }
	 // Moyenne periodique eleve par groupe de discipline coefficientee (25)(9')
         If ($moy [$num_groupe]["moy_c_coeff"][$num_periode][$num_eleve] > 0)
          {
	   $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] = $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve]/$moy [$num_groupe]["moy_c_coeff"][$num_periode][$num_eleve] ;
	   // Moyenne annuelle eleve par groupe de discipline coefficientee temporaire (26)(10')
	   $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] += $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] ;
	   $moy [$num_groupe]["moy_c"]["moy_coeff"][$num_eleve]++ ;
	   // Moyenne de la moyenne generale par groupe de discipline coefficientee temporaire (27)(11')
	   $moy [$num_groupe]["moy_c"][$num_periode]["moy"] += $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] ;
	   $moy [$num_groupe]["moy_c"][$num_periode]["moy_coeff"]++ ;
	   // Minimum de la moyenne generale par groupe de discipline coefficientee (28)(12') et Maximum de la moyenne generale par groupe de discipline coefficientee (29)(13')
	   If ($moy [$num_groupe]["moy_c"][$num_periode]["min"] == "-")
	    {
	     $moy [$num_groupe]["moy_c"][$num_periode]["min"] = $moy [$num_groupe]["moy_c"][$num_periode]["max"] = $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] ;
	    }
	   Else
	    {
	     If ($moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] < $moy [$num_groupe]["moy_c"][$num_periode]["min"]) { $moy [$num_groupe]["moy_c"][$num_periode]["min"] = $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] ; }
	     If ($moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] > $moy [$num_groupe]["moy_c"][$num_periode]["max"]) { $moy [$num_groupe]["moy_c"][$num_periode]["max"] = $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] ; }
	    }
	  }
         Else { $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve] = $espace."-".$espace ; }
	}
      }
    }
   // Calcul des moyennes periodiques disciplinaires
   $num_disc = 1 ;
   For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
    {
     For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
      {
       For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
        {
	 // Moyenne disciplinaire par periode (3)
	 If ($moy [$num_groupe][$num_disc][$num_periode]["coeff"] > 0)
	  { $moy [$num_groupe][$num_disc][$num_periode]["moy"] = $moy [$num_groupe][$num_disc][$num_periode]["moy"]/$moy [$num_groupe][$num_disc][$num_periode]["coeff"] ; }
	 Else { $moy [$num_groupe][$num_disc][$num_periode]["moy"] = $espace."-".$espace ; }
        }
       // Moyenne disciplinaire annuelle (6)
       If ($moy [$num_groupe][$num_disc]["moy"]["coeff"] > 0)
        { $moy [$num_groupe][$num_disc]["moy"]["moy"] = $moy [$num_groupe][$num_disc]["moy"]["moy"]/$moy [$num_groupe][$num_disc]["moy"]["coeff"] ; }
       Else { $moy [$num_groupe][$num_disc]["moy"]["moy"] = $espace."-".$espace ; }
       $num_disc++ ;
      }
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       // Moyenne de la moyenne generale par groupe de discipline non coefficientee temporaire (27)(11')
       If ($moy [$num_groupe]["moy_nc"][$num_periode]["moy_coeff"] > 0)
        { $moy [$num_groupe]["moy_nc"][$num_periode]["moy"] = $moy [$num_groupe]["moy_nc"][$num_periode]["moy"]/$moy [$num_groupe]["moy_nc"][$num_periode]["moy_coeff"] ; }
       Else { $moy [$num_groupe]["moy_nc"][$num_periode]["moy"] = $espace."-".$espace ; }
       // Moyenne de la moyenne generale par groupe de discipline coefficientee temporaire (27)(11')
       If ($moy [$num_groupe]["moy_c"][$num_periode]["moy_coeff"] > 0)
        { $moy [$num_groupe]["moy_c"][$num_periode]["moy"] = $moy [$num_groupe]["moy_c"][$num_periode]["moy"]/$moy [$num_groupe]["moy_c"][$num_periode]["moy_coeff"] ; }
       Else { $moy [$num_groupe]["moy_c"][$num_periode]["moy"] = $espace."-".$espace ; }
      }
    }
   // Calcul des moyennes generales par groupe de disciplines
   For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
    {
     $num_disc = 1 ;
     For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
      {
       // Moyenne annuelle eleve par groupe de discipline non coefficientee (26)(10')
       If ($moy [$num_groupe]["moy_nc"]["moy_coeff"][$num_eleve] > 0)
        {
	 $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] = $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve]/$moy [$num_groupe]["moy_nc"]["moy_coeff"][$num_eleve] ;
	 // Moyenne de la moyenne annuelle par groupe de discipline non coefficientee temporaire (30)(14')
	 $moy [$num_groupe]["moy_nc"]["moy"]["moy"] += $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] ;
	 $moy [$num_groupe]["moy_nc"]["moy"]["moy_coeff"]++ ;
	 // Minimum de la moyenne annuelle par groupe de discipline non coefficientee (31)(15') et Maximum de la moyenne annuelle par groupe de discipline non coefficientee (32)(16')
	 If ($moy [$num_groupe]["moy_nc"]["moy"]["min"] == "-")
	  {
	   $moy [$num_groupe]["moy_nc"]["moy"]["min"] = $moy [$num_groupe]["moy_nc"]["moy"]["max"] = $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] ;
	  }
	 Else
	  {
	   If ($moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] < $moy [$num_groupe]["moy_nc"]["moy"]["min"]) { $moy [$num_groupe]["moy_nc"]["moy"]["min"] = $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] ; }
	   If ($moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] > $moy [$num_groupe]["moy_nc"]["moy"]["max"]) { $moy [$num_groupe]["moy_nc"]["moy"]["max"] = $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] ; }
	  }
	}
       Else { $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] = $espace."-".$espace ; }
       // Moyenne annuelle eleve par groupe de discipline coefficientee (26)(10')
       If ($moy [$num_groupe]["moy_c"]["moy_coeff"][$num_eleve] > 0)
        {
	 $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] = $moy [$num_groupe]["moy_c"]["moy"][$num_eleve]/$moy [$num_groupe]["moy_c"]["moy_coeff"][$num_eleve] ;
	 // Moyenne de la moyenne annuelle par groupe de discipline coefficientee temporaire (30)(14')
	 $moy [$num_groupe]["moy_c"]["moy"]["moy"] += $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] ;
	 $moy [$num_groupe]["moy_c"]["moy"]["moy_coeff"]++ ;
	 // Minimum de la moyenne annuelle par groupe de discipline coefficientee (31)(15') et Maximum de la moyenne annuelle par groupe de discipline coefficientee (32)(16')
	 If ($moy [$num_groupe]["moy_c"]["moy"]["min"] == "-")
	  {
	   $moy [$num_groupe]["moy_c"]["moy"]["min"] = $moy [$num_groupe]["moy_c"]["moy"]["max"] = $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] ;
	  }
	 Else
	  {
	   If ($moy [$num_groupe]["moy_c"]["moy"][$num_eleve] < $moy [$num_groupe]["moy_c"]["moy"]["min"]) { $moy [$num_groupe]["moy_c"]["moy"]["min"] = $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] ; }
	   If ($moy [$num_groupe]["moy_c"]["moy"][$num_eleve] > $moy [$num_groupe]["moy_c"]["moy"]["max"]) { $moy [$num_groupe]["moy_c"]["moy"]["max"] = $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] ; }
	  }
	}
       Else { $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] = $espace."-".$espace ; }
      }
    }
   For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
    {
     // Moyenne de la moyenne annuelle par groupe de discipline non coefficientee (30)(14')
     If ($moy [$num_groupe]["moy_nc"]["moy"]["moy_coeff"] > 0)
      {
       $moy [$num_groupe]["moy_nc"]["moy"]["moy"] = $moy [$num_groupe]["moy_nc"]["moy"]["moy"]/$moy [$num_groupe]["moy_nc"]["moy"]["moy_coeff"] ;
      }
     Else { $moy [$num_groupe]["moy_nc"]["moy"]["moy"] = $espace."-".$espace ; }
     // Moyenne de la moyenne annuelle par groupe de discipline coefficientee (30)(14')
     If ($moy [$num_groupe]["moy_c"]["moy"]["moy_coeff"] > 0)
      {
       $moy [$num_groupe]["moy_c"]["moy"]["moy"] = $moy [$num_groupe]["moy_c"]["moy"]["moy"]/$moy [$num_groupe]["moy_c"]["moy"]["moy_coeff"] ;
      }
     Else { $moy [$num_groupe]["moy_c"]["moy"]["moy"] = $espace."-".$espace ; }
    }
   // Moyennes periodiques non coefficientees et coefficientees
   For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
    {
     For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
      {
       Switch ($type_moy_periode)
        {
         // Moyenne des moyennes des disciplines/coefficients
         Default :
          Case 0 : $num_disc = 1 ;
		   For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
                    {
		     For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
                      {
		       If (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode][$num_eleve]))
		        {
			 // Si ce n'est pas une option ou si la valeur est superieure a la moitie alors calculer la moyenne annuelle et periodique
	                 If (($aff_ligne [$num_eleve][$num_disc][2][$num_periode] == 0) Or (($aff_ligne [$num_eleve][$num_disc][2][$num_periode] == 1) And ($aff_ligne [$num_eleve][$num_disc][1][$num_periode] > $moitie)))
	                  {
		           // Moyenne eleve periodique non coefficientee generale temporaire (9)
		           $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] += $moy [$num_groupe][$num_disc][$num_periode][$num_eleve] ;
		           $moy ["moy_nc"]["moy_coeff"][$num_periode][$num_eleve]++ ;
		           // Moyenne eleve periodique coefficientee generale temporaire (17)
		           $moy ["moy_c"]["moy"][$num_periode][$num_eleve] += $moy [$num_groupe][$num_disc][$num_periode][$num_eleve]*$t_disc ["coeff_disc"][$num_disc] ;
		           $moy ["moy_c"]["moy_coeff"][$num_periode][$num_eleve] += $t_disc ["coeff_disc"][$num_disc] ;
			  }
		        }
		       $num_disc++ ;
		      }
		    }
		   
		   Break ;	
	 // Moyenne des moyennes des groupes de disciplines/coefficients
	 Case 1 : For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
                   {
		    If (Is_Numeric ($moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve]))
		     {
		      // Si ce n'est pas une option ou si la valeur est superieure a la moitie alors calculer la moyenne annuelle et periodique
	              If (($aff_ligne [$num_eleve][$num_disc][2][$num_periode] == 0) Or (($aff_ligne [$num_eleve][$num_disc][2][$num_periode] == 1) And ($aff_ligne [$num_eleve][$num_disc][1][$num_periode] > $moitie)))
	               {
		        // Moyenne eleve periodique non coefficientee generale temporaire (9)
		        $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] += $moy [$num_groupe]["moy_nc"][$num_periode][$num_eleve] ;
		        $moy ["moy_nc"]["moy_coeff"][$num_periode][$num_eleve]++ ;
		        // Moyenne eleve periodique coefficientee generale temporaire (17)
		        $moy ["moy_c"]["moy"][$num_periode][$num_eleve] += $moy [$num_groupe]["moy_c"][$num_periode][$num_eleve]*$groupe_disc [$num_groupe][4] ;
		        $moy ["moy_c"]["moy_coeff"][$num_periode][$num_eleve] += $groupe_disc [$num_groupe][4] ;
		       }
		     }
		   }
	          Break ;
        }
       // Moyenne eleve periodique non coefficientee generale (9)
       If ($moy ["moy_nc"]["moy_coeff"][$num_periode][$num_eleve] > 0)
        {
         $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] = $moy ["moy_nc"]["moy"][$num_periode][$num_eleve]/$moy ["moy_nc"]["moy_coeff"][$num_periode][$num_eleve] ;
         // Moyennes annuelles non coefficientees
         Switch ($type_moy_annuelle)
          {
           // Moyenne des moyennes des periodes
           Default :
            Case 0 : // Moyenne eleve annuelle non coefficientee generale temporaire (10)
                     $moy ["moy_nc"]["moy"]["moy"][$num_eleve] += $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] ;
                     $moy ["moy_nc"]["moy"]["moy_coeff"][$num_eleve]++ ;
                     Break ;
          }
	 // Moyenne de la moyenne periodique non coefficientee generale temporaire (11)
	 $moy ["moy_nc"]["moy"][$num_periode]["moy"] += $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] ;
	 $moy ["moy_nc"]["moy"][$num_periode]["moy_coeff"]++ ;
	 // Minimum de la moyenne periodique non coefficientee generale (12) et Maximum de la moyenne periodique non coefficientee generale (13)
	 If ($moy ["moy_nc"]["moy"][$num_periode]["min"] == "-")
	  {
	   $moy ["moy_nc"]["moy"][$num_periode]["min"] = $moy ["moy_nc"]["moy"][$num_periode]["max"] = $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] ;
	  }
	 Else
	  {
	   If ($moy ["moy_nc"]["moy"][$num_periode][$num_eleve] < $moy ["moy_nc"]["moy"][$num_periode]["min"]) { $moy ["moy_nc"]["moy"][$num_periode]["min"] = $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] ; }
	   If ($moy ["moy_nc"]["moy"][$num_periode][$num_eleve] > $moy ["moy_nc"]["moy"][$num_periode]["max"]) { $moy ["moy_nc"]["moy"][$num_periode]["max"] = $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] ; }
	  }
	}
       Else { $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] = $espace."-".$espace ; }
       // Moyenne eleve periodique coefficientee generale (17)
       If ($moy ["moy_c"]["moy_coeff"][$num_periode][$num_eleve] > 0)
        {
         $moy ["moy_c"]["moy"][$num_periode][$num_eleve] = $moy ["moy_c"]["moy"][$num_periode][$num_eleve]/$moy ["moy_c"]["moy_coeff"][$num_periode][$num_eleve] ;
         // Moyennes annuelles coefficientees
         Switch ($type_moy_annuelle)
          {
           // Moyenne des moyennes des periodes
           Default :
            Case 0 : // Moyenne eleve annuelle coefficientee generale temporaire (18)
	             $moy ["moy_c"]["moy"]["moy"][$num_eleve] += $moy ["moy_c"]["moy"][$num_periode][$num_eleve] ;
	             $moy ["moy_c"]["moy"]["moy_coeff"][$num_eleve]++ ;
                     Break ;
          }
	 // Moyenne de la moyenne periodique coefficientee generale temporaire (19)
	 $moy ["moy_c"]["moy"][$num_periode]["moy"] += $moy ["moy_c"]["moy"][$num_periode][$num_eleve] ;
	 $moy ["moy_c"]["moy"][$num_periode]["moy_coeff"]++ ;
	 // Minimum de la moyenne periodique coefficientee generale (20) et Maximum de la moyenne periodique coefficientee generale (21)
	 If ($moy ["moy_c"]["moy"][$num_periode]["min"] == "-")
	  {
	   $moy ["moy_c"]["moy"][$num_periode]["min"] = $moy ["moy_c"]["moy"][$num_periode]["max"] = $moy ["moy_c"]["moy"][$num_periode][$num_eleve] ;
	  }
	 Else
	  {
	   If ($moy ["moy_c"]["moy"][$num_periode][$num_eleve] < $moy ["moy_c"]["moy"][$num_periode]["min"]) { $moy ["moy_c"]["moy"][$num_periode]["min"] = $moy ["moy_c"]["moy"][$num_periode][$num_eleve] ; }
	   If ($moy ["moy_c"]["moy"][$num_periode][$num_eleve] > $moy ["moy_c"]["moy"][$num_periode]["max"]) { $moy ["moy_c"]["moy"][$num_periode]["max"] = $moy ["moy_c"]["moy"][$num_periode][$num_eleve] ; }
	  }
	}
       Else { $moy ["moy_c"]["moy"][$num_periode][$num_eleve] = $espace."-".$espace ; }
      }
     // Moyenne de la moyenne periodique non coefficientee generale (11)
     If ($moy ["moy_nc"]["moy"][$num_periode]["moy_coeff"] > 0)
      {
       $moy ["moy_nc"]["moy"][$num_periode]["moy"] = $moy ["moy_nc"]["moy"][$num_periode]["moy"]/$moy ["moy_nc"]["moy"][$num_periode]["moy_coeff"] ;
      }
     Else { $moy ["moy_nc"]["moy"][$num_periode]["moy"] = $espace."-".$espace ; }
     // Moyenne de la moyenne periodique coefficientee generale (19)
     If ($moy ["moy_c"]["moy"][$num_periode]["moy_coeff"] > 0)
      {
       $moy ["moy_c"]["moy"][$num_periode]["moy"] = $moy ["moy_c"]["moy"][$num_periode]["moy"]/$moy ["moy_c"]["moy"][$num_periode]["moy_coeff"] ;
      }
     Else { $moy ["moy_c"]["moy"][$num_periode]["moy"] = $espace."-".$espace ; }
    }
   // Derniere colonne de moyennes
   For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
    {
     // Moyennes annuelles non coefficientees et coefficientees
     Switch ($type_moy_annuelle)
      {
       // Moyenne des moyennes des periodes
       Default :
        Case 0 : // Moyenne eleve annuelle non coefficientee generale (10)
                 If ($moy ["moy_nc"]["moy"]["moy_coeff"][$num_eleve] > 0) { $moy ["moy_nc"]["moy"]["moy"][$num_eleve] = $moy ["moy_nc"]["moy"]["moy"][$num_eleve]/$moy ["moy_nc"]["moy"]["moy_coeff"][$num_eleve] ; }
                 Else { $moy ["moy_nc"]["moy"]["moy"][$num_eleve] = $espace."-".$espace ; }
                 // Moyenne eleve annuelle coefficientee generale (18)
                 If ($moy ["moy_c"]["moy"]["moy_coeff"][$num_eleve] > 0) { $moy ["moy_c"]["moy"]["moy"][$num_eleve] = $moy ["moy_c"]["moy"]["moy"][$num_eleve]/$moy ["moy_c"]["moy"]["moy_coeff"][$num_eleve] ; }
                 Else { $moy ["moy_c"]["moy"]["moy"][$num_eleve] = $espace."-".$espace ; }
                 Break ;
                 // Moyenne de toutes les notes de l'annee
        Case 1 : 
                 Break ;
      }
     // Moyenne eleve annuelle non coefficientee generale (10)
     If (Is_Numeric ($moy ["moy_nc"]["moy"]["moy"][$num_eleve]))
      {
       // Moyenne de la moyenne annuelle non coefficientee generale temporaire (14)
       $moy ["moy_nc"]["moy"]["moy"]["moy"] += $moy ["moy_nc"]["moy"]["moy"][$num_eleve] ;
       $moy ["moy_nc"]["moy"]["moy"]["moy_coeff"]++ ;
       // Minimum de la moyenne annuelle non coefficientee generale (15) et Maximum de la moyenne annuelle non coefficientee generale (16)
       If ($moy ["moy_nc"]["moy"]["moy"]["min"] == "-")
        {
         $moy ["moy_nc"]["moy"]["moy"]["min"] = $moy ["moy_nc"]["moy"]["moy"]["max"] = $moy ["moy_nc"]["moy"]["moy"][$num_eleve] ;
        }
       Else
        {
         If ($moy ["moy_nc"]["moy"]["moy"][$num_eleve] < $moy ["moy_nc"]["moy"]["moy"]["min"]) { $moy ["moy_nc"]["moy"]["moy"]["min"] = $moy ["moy_nc"]["moy"]["moy"][$num_eleve] ; }
         If ($moy ["moy_nc"]["moy"]["moy"][$num_eleve] > $moy ["moy_nc"]["moy"]["moy"]["max"]) { $moy ["moy_nc"]["moy"]["moy"]["max"] = $moy ["moy_nc"]["moy"]["moy"][$num_eleve] ; }
        }
      }
     // Moyenne eleve annuelle coefficientee generale (18)
     If (Is_Numeric ($moy ["moy_c"]["moy"]["moy"][$num_eleve]))
      {
       // Moyenne de la moyenne annuelle coefficientee generale temporaire (22)
       $moy ["moy_c"]["moy"]["moy"]["moy"] += $moy ["moy_c"]["moy"]["moy"][$num_eleve] ;
       $moy ["moy_c"]["moy"]["moy"]["moy_coeff"]++ ;
       // Minimum de la moyenne annuelle non coefficientee generale (15) et Maximum de la moyenne annuelle non coefficientee generale (16)
       If ($moy ["moy_c"]["moy"]["moy"]["min"] == "-")
        {
         $moy ["moy_c"]["moy"]["moy"]["min"] = $moy ["moy_c"]["moy"]["moy"]["max"] = $moy ["moy_c"]["moy"]["moy"][$num_eleve] ;
        }
       Else
        {
         If ($moy ["moy_c"]["moy"]["moy"][$num_eleve] < $moy ["moy_c"]["moy"]["moy"]["min"]) { $moy ["moy_c"]["moy"]["moy"]["min"] = $moy ["moy_c"]["moy"]["moy"][$num_eleve] ; }
         If ($moy ["moy_c"]["moy"]["moy"][$num_eleve] > $moy ["moy_c"]["moy"]["moy"]["max"]) { $moy ["moy_c"]["moy"]["moy"]["max"] = $moy ["moy_c"]["moy"]["moy"][$num_eleve] ; }
        }
      }
    }
   // Moyenne de la moyenne annuelle non coefficientee generale (14)
   If ($moy ["moy_nc"]["moy"]["moy"]["moy_coeff"] > 0)
    {
     $moy ["moy_nc"]["moy"]["moy"]["moy"] = $moy ["moy_nc"]["moy"]["moy"]["moy"]/$moy ["moy_nc"]["moy"]["moy"]["moy_coeff"] ;
    }
   Else { $moy ["moy_nc"]["moy"]["moy"]["moy"] = $espace."-".$espace ; }
   // Moyenne de la moyenne annuelle coefficientee generale (22)
   If ($moy ["moy_c"]["moy"]["moy"]["moy_coeff"] > 0)
    {
     $moy ["moy_c"]["moy"]["moy"]["moy"] = $moy ["moy_c"]["moy"]["moy"]["moy"]/$moy ["moy_c"]["moy"]["moy"]["moy_coeff"] ;
    }
   Else { $moy ["moy_c"]["moy"]["moy"]["moy"] = $espace."-".$espace ; }
   
   // Calcul des rangs
   UnSet ($aclasser_nc) ;
   UnSet ($aclasser_c) ;
   For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
    {
     For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
      {
       // Rang eleve periodique non coefficientee generale (49)
       $aclasser_nc [$num_eleve][0] = $moy ["moy_nc"]["moy"][$num_periode][$num_eleve] ;
       $aclasser_nc [$num_eleve][1] = $num_eleve ;
       $moy ["moy_nc"]["rang"][$num_periode][$num_eleve] = $num_eleve ;
       For ($j = $num_eleve-1 ; $j > 0 ; $j--)
        {
         If ($aclasser_nc [$j+1][0] > $aclasser_nc [$j][0])
          {
           $tempo = $aclasser_nc [$j][0] ; $aclasser_nc [$j][0] = $aclasser_nc [$j+1][0] ; $aclasser_nc [$j+1][0] = $tempo ;
	   $tempo = $aclasser_nc [$j][1] ; $aclasser_nc [$j][1] = $aclasser_nc [$j+1][1] ; $aclasser_nc [$j+1][1] = $tempo ;
           $tempo = $moy ["moy_nc"]["rang"][$num_periode][$aclasser_nc [$j][1]] ;
           $moy ["moy_nc"]["rang"][$num_periode][$aclasser_nc [$j][1]] = $moy ["moy_nc"]["rang"][$num_periode][$aclasser_nc [$j+1][1]] ;
           $moy ["moy_nc"]["rang"][$num_periode][$aclasser_nc [$j+1][1]] = $tempo ;
          }
        }
       // Rang eleve periodique coefficientee generale (51)
       $aclasser_c [$num_eleve][0] = $moy ["moy_c"]["moy"][$num_periode][$num_eleve] ;
       $aclasser_c [$num_eleve][1] = $num_eleve ;
       $moy ["moy_c"]["rang"][$num_periode][$num_eleve] = $num_eleve ;
       For ($j = $num_eleve-1 ; $j > 0 ; $j--)
        {
         If ($aclasser_c [$j+1][0] > $aclasser_c [$j][0])
          {
           $tempo = $aclasser_c [$j][0] ; $aclasser_c [$j][0] = $aclasser_c [$j+1][0] ; $aclasser_c [$j+1][0] = $tempo ;
	   $tempo = $aclasser_c [$j][1] ; $aclasser_c [$j][1] = $aclasser_c [$j+1][1] ; $aclasser_c [$j+1][1] = $tempo ;
           $tempo = $moy ["moy_c"]["rang"][$num_periode][$aclasser_c [$j][1]] ;
           $moy ["moy_c"]["rang"][$num_periode][$aclasser_c [$j][1]] = $moy ["moy_c"]["rang"][$num_periode][$aclasser_c [$j+1][1]] ;
           $moy ["moy_c"]["rang"][$num_periode][$aclasser_c [$j+1][1]] = $tempo ;
          }
        }
      }
    }
   UnSet ($aclasser_nc) ;
   UnSet ($aclasser_c) ;
   For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
    {
     // Rang eleve annuelle non coefficientee generale (50)
     $aclasser_nc [$num_eleve][0] = $moy ["moy_nc"]["moy"]["moy"][$num_eleve] ;
     $aclasser_nc [$num_eleve][1] = $num_eleve ;
     $moy ["moy_nc"]["rang"]["moy"][$num_eleve] = $num_eleve ;
     For ($j = $num_eleve-1 ; $j > 0 ; $j--)
      {
       If ($aclasser_nc [$j+1][0] > $aclasser_nc [$j][0])
        {
         $tempo = $aclasser_nc [$j][0] ; $aclasser_nc [$j][0] = $aclasser_nc [$j+1][0] ; $aclasser_nc [$j+1][0] = $tempo ;
	 $tempo = $aclasser_nc [$j][1] ; $aclasser_nc [$j][1] = $aclasser_nc [$j+1][1] ; $aclasser_nc [$j+1][1] = $tempo ;
         $tempo = $moy ["moy_nc"]["rang"]["moy"][$aclasser_nc [$j][1]] ;
	 $moy ["moy_nc"]["rang"]["moy"][$aclasser_nc [$j][1]] = $moy ["moy_nc"]["rang"]["moy"][$aclasser_nc [$j+1][1]] ;
	 $moy ["moy_nc"]["rang"]["moy"][$aclasser_nc [$j+1][1]] = $tempo ;
        }
      }
     // Rang eleve annuelle coefficientee generale (52)
     $aclasser_c [$num_eleve][0] = $moy ["moy_c"]["moy"]["moy"][$num_eleve] ;
     $aclasser_c [$num_eleve][1] = $num_eleve ;
     $moy ["moy_c"]["rang"]["moy"][$num_eleve] = $num_eleve ;
     For ($j = $num_eleve-1 ; $j > 0 ; $j--)
      {
       If ($aclasser_c [$j+1][0] > $aclasser_c [$j][0])
        {
         $tempo = $aclasser_c [$j][0] ; $aclasser_c [$j][0] = $aclasser_c [$j+1][0] ; $aclasser_c [$j+1][0] = $tempo ;
	 $tempo = $aclasser_c [$j][1] ; $aclasser_c [$j][1] = $aclasser_c [$j+1][1] ; $aclasser_c [$j+1][1] = $tempo ;
         $tempo = $moy ["moy_c"]["rang"]["moy"][$aclasser_c [$j][1]] ;
	 $moy ["moy_c"]["rang"]["moy"][$aclasser_c [$j][1]] = $moy ["moy_c"]["rang"]["moy"][$aclasser_c [$j+1][1]] ;
	 $moy ["moy_c"]["rang"]["moy"][$aclasser_c [$j+1][1]] = $tempo ;
        }
      }
    }
   
   // Calcul ecart type et mediane
   $num_disc = 1 ;
   For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
    {
     For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
      {
       // Moyennes periodiques par disciplines
       For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
        {
         $ectp = $n_ectp = 0 ;
         UnSet ($note_mediane) ;
         For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
          {
           // Ecart type moyennes
           If (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode][$num_eleve]))
            {
	     $ectp += Pow ($moy [$num_groupe][$num_disc][$num_periode][$num_eleve], 2) ;
	     $n_ectp++ ;
	     $note_mediane [$num_eleve] = $moy [$num_groupe][$num_disc][$num_periode][$num_eleve] ;
	    }
	  }
         If (($n_ectp > 0) And (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode]["moy"])))
          {
	   // Ecart type disciplinaire par periode (33)
	   $moy [$num_groupe][$num_disc][$num_periode]["ecart"] = Sqrt ($ectp/$n_ectp-Pow ($moy [$num_groupe][$num_disc][$num_periode]["moy"], 2)) ;
	   // Mediane disciplinaire par periode (34)
           Sort ($note_mediane) ;
           $num1 = Floor (($n_ectp+1)/2) ;
           $num2 = Ceil (($n_ectp+1)/2) ;
           If ($num1 == $num2) { $moy [$num_groupe][$num_disc][$num_periode]["mediane"] = $note_mediane [$num1-1] ; }
	   Else { $moy [$num_groupe][$num_disc][$num_periode]["mediane"] = ($note_mediane [$num1-1]+$note_mediane [$num2-1])/2 ; }
          }
         Else { $moy [$num_groupe][$num_disc][$num_periode]["ecart"] = $moy [$num_groupe][$num_disc][$num_periode]["mediane"] = $espace."-".$espace ; }
        }
       // Moyennes disciplinaires
       $ectp = $n_ectp = 0 ;
       UnSet ($note_mediane) ;
       For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
        {
         // Ecart type moyennes
         If (Is_Numeric ($moy [$num_groupe][$num_disc]["moy"][$num_eleve]))
          {
           $ectp += Pow ($moy [$num_groupe][$num_disc]["moy"][$num_eleve], 2) ;
  	   $n_ectp++ ;
  	   $note_mediane [$num_eleve] = $moy [$num_groupe][$num_disc]["moy"][$num_eleve] ;
  	  }
        }
       If (($n_ectp > 0) And (Is_Numeric ($moy [$num_groupe][$num_disc]["moy"]["moy"])))
        {
	 // Ecart type disciplinaire annuelle (35)
         $moy [$num_groupe][$num_disc]["moy"]["ecart"] = Sqrt ($ectp/$n_ectp-Pow ($moy [$num_groupe][$num_disc]["moy"]["moy"], 2)) ;
	 // Mediane disciplinaire annuelle (36)
         Sort ($note_mediane) ;
         $num1 = Floor (($n_ectp+1)/2) ;
         $num2 = Ceil (($n_ectp+1)/2) ;
         If ($num1 == $num2) { $moy [$num_groupe][$num_disc]["moy"]["mediane"] = $note_mediane [$num1-1] ; }
	 Else { $moy [$num_groupe][$num_disc]["moy"]["mediane"] = ($note_mediane [$num1-1]+$note_mediane [$num2-1])/2 ; }
        }
       Else { $moy [$num_groupe][$num_disc]["moy"]["ecart"] = $moy [$num_groupe][$num_disc]["moy"]["mediane"] = $espace."-".$espace ; }
       
       $num_disc++ ;
      }
     // Groupes de disciplines
     $ectp_nc = $n_ectp_nc = $ectp_c = $n_ectp_c = 0 ;
     UnSet ($note_mediane_nc) ;
     UnSet ($note_mediane_c) ;
     For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
      {
       // Ecart type moyennes non coefficentees
       If (Is_Numeric ($moy [$num_groupe]["moy_nc"]["moy"][$num_eleve]))
        {
         $ectp_nc += Pow ($moy [$num_groupe]["moy_nc"]["moy"][$num_eleve], 2) ;
         $n_ectp_nc++ ;
         $note_mediane_nc [$num_eleve] = $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve] ;
        }
       // Ecart type moyennes coefficentees
       If (Is_Numeric ($moy [$num_groupe]["moy_c"]["moy"][$num_eleve]))
        {
         $ectp_c += Pow ($moy [$num_groupe]["moy_c"]["moy"][$num_eleve], 2) ;
         $n_ectp_c++ ;
         $note_mediane_c [$num_eleve] = $moy [$num_groupe]["moy_c"]["moy"][$num_eleve] ;
        }
      }
     If (($n_ectp_nc > 0) And (Is_Numeric ($moy [$num_groupe]["moy_nc"]["moy"]["moy"])))
      {
       // Ecart type de la moyenne annuelle par groupe de discipline non coefficientee (47)
       $moy [$num_groupe]["moy_nc"]["moy"]["ecart"] = Sqrt ($ectp_nc/$n_ectp_nc-Pow ($moy [$num_groupe]["moy_nc"]["moy"]["moy"], 2)) ;
       // Mediane de la moyenne annuelle par groupe de discipline non coefficientee (48)
       Sort ($note_mediane_nc) ;
       $num1 = Floor (($n_ectp_nc+1)/2) ;
       $num2 = Ceil (($n_ectp_nc+1)/2) ;
       If ($num1 == $num2) { $moy [$num_groupe]["moy_nc"]["moy"]["mediane"] = $note_mediane_nc [$num1-1] ; }
       Else { $moy [$num_groupe]["moy_nc"]["moy"]["mediane"] = ($note_mediane_nc [$num1-1]+$note_mediane_nc [$num2-1])/2 ; }
      }
     Else { $moy [$num_groupe]["moy_nc"]["moy"]["ecart"] = $moy [$num_groupe]["moy_nc"]["moy"]["mediane"] = $espace."-".$espace ; }
     
     If (($n_ectp_c > 0) And (Is_Numeric ($moy [$num_groupe]["moy_c"]["moy"]["moy"])))
      {
       // Ecart type de la moyenne annuelle par groupe de discipline coefficientee (47)
       $moy [$num_groupe]["moy_c"]["moy"]["ecart"] = Sqrt ($ectp_c/$n_ectp_c-Pow ($moy [$num_groupe]["moy_c"]["moy"]["moy"], 2)) ;
       // Mediane de la moyenne annuelle par groupe de discipline coefficientee (48)
       Sort ($note_mediane_c) ;
       $num1 = Floor (($n_ectp_c+1)/2) ;
       $num2 = Ceil (($n_ectp_c+1)/2) ;
       If ($num1 == $num2) { $moy [$num_groupe]["moy_c"]["moy"]["mediane"] = $note_mediane_c [$num1-1] ; }
       Else { $moy [$num_groupe]["moy_c"]["moy"]["mediane"] = ($note_mediane_c [$num1-1]+$note_mediane_c [$num2-1])/2 ; }
      }
     Else { $moy [$num_groupe]["moy_c"]["moy"]["ecart"] = $moy [$num_groupe]["moy_c"]["moy"]["mediane"] = $espace."-".$espace ; }
    }
   Return $moy ;
  }
 
 /**
 * Fonctions de gestion affichage HTML
 */
 /**
 * Affichage des icones de racourci : Autres periodes
 * param int $periode Numero de periode actuelle
 * @param array $nom_periode Tablaau des periodes
 * @param int $id_classe Identifiant de la classe
 * @return string Affichage HTML
 */
 Function affichage_racourcis ($periode, $nom_periode, $id_classe)
  {
   Global $_SESSION ;
   $ligne = "" ;
   If ($nom_periode [2] > 1)
    {
     $ligne .= "<table bordder\"0\" cellpadding=\"0\" cellspacing=\"2\" align=\"center\"><tr>" ;
     For ($i = 1 ; $i <= $nom_periode [2] ; $i++)
      {
       If ($periode != $i)
        {
         $ligne .= "<form action=\"./moyennes.php\" method=\"post\"><td>" ;
         $ligne .= "<input type=\"hidden\" name=\"code\" value=\"".$_SESSION ["code"]."\">" ;
         $ligne .= "<input type=\"hidden\" name=\"id_classe\" value=\"".$id_classe."\">" ;
         $ligne .= "<input type=\"hidden\" name=\"periode\" value=\"".$i."\">" ;
         $ligne .= "<input type=\"hidden\" name=\"titre\" value=\"1\">" ;
         $ligne .= "<input type=\"image\" src=\"../images/moyennes".$i.".png\" title=\"Moyennes de la p&eacute;riode ".$i."\" border=\"0\">" ;
         $ligne .= "</td></form>" ;
        }
      }
     If (($nom_periode [2] == $nom_periode [1]) And ($periode <= $nom_periode [1]))
      {
       $ligne .= "<form action=\"./moyennes.php\" method=\"post\"><td>" ;
       $ligne .= "<input type=\"hidden\" name=\"code\" value=\"".$_SESSION ["code"]."\">" ;
       $ligne .= "<input type=\"hidden\" name=\"id_classe\" value=\"".$id_classe."\">" ;
       $ligne .= "<input type=\"hidden\" name=\"periode\" value=\"".($nom_periode [2]+1)."\">" ;
       $ligne .= "<input type=\"hidden\" name=\"titre\" value=\"1\">" ;
       $ligne .= "<input type=\"image\" src=\"../images/moyennesa.png\" title=\"Moyennes annuelle de la classe\" border=\"0\">" ;
       $ligne .= "</td></form>" ;
      }
     $ligne .= "</tr></table>" ;
    }
   Return $ligne ;
  }
 
 /**
 * Fonction d'affichage des moyennes
 * @param int $type_moyenne Type de moyenne a afficher (0=Normales,1=Examens)
 * @param int $periode Periode actuelle
 * @param int $min_periode Premiere periode
 * @param int $max_periode Derniere periode
 * @param int $nbr_periodes Nombre de periodes a afficher
 * @param array $nom_periode Noms des periodes
 * @param int $nombre_el Nombre d'eleves
 * @param array $aff_ligne Tableau pour affichage
 * @param array $moy Tableau des Moyennes a afficher
 * @param array $groupe_disc Ensemble des groupes de disciplines
 * @param array $t_disc Table des disciplines (voir fonction determine_disciplines () pour les champs)
 * @param int $table_annee Si 1 affichage de l'annee sinon pas d'affichage
 * @param int $colonne_moy_discipline Affichage de la colonne des moyennes disciplinaires (si = 1)
 * @param int $colonne_moy_annee Affichage de la colonne des moyennes annuelles (si = 1)
 * @param int $rang_eleve_non_coefficiente Affichage du rang des eleves dans les moyennes non coefficientees (si = 1)
 * @param int $aff_coeff Affichage des moyennes coefficientees (si = 1)
 * @param int $rang_eleve_coefficiente Affichage du rang des eleves dans les moyennes coefficientees (si = 1)
 * @param int $aff_nom_sous_disc Affichage des noms des sous-disciplines (si = 1)
 * @param int $aff_nom_groupe Affichage des nom de groupe (si = 1)
 * @param int $aff_nom_enseignant Affichage des nom enseignant (si = 1)
 * @param int $aff_coefficient Affichage des coefficients (si = 1)
 * @param int $ecart_type_disciplinaire Affichage des ecart types disciplinaires (si = 1)
 * @param int $mediane_disciplinaire Affichage de la ligne des medianes (si = 1)
 * @param int $surbrillance Met en place la surbrillance au passage de la souris (si = 1)
 * @param int $taille_fonte Taille de la police de caracteres
 * @param int $format_arrondi Numero de l'arrondi a appliquer
 * @param array $theme Theme d'affichage
 * @param array $coul_notes Couleurs des notes
 * @param array $gestion Table de gestion (voir table 'etablissements')
 * @param int $droit_courant Droit actuel
 * @param int $droit_prof Droit professeur
 * @return string Affichage au format HTML
 */
 Function affichage_moyennes ($type_moyenne, $periode, $min_periode, $max_periode, $nbr_periodes, $nom_periode,
                              $aff_ligne, $moy, $groupe_disc, $t_disc,
			      $table_annee, $colonne_moy_discipline, $colonne_moy_annee, $rang_eleve_non_coefficiente,
                              $aff_coeff, $rang_eleve_coefficiente, $aff_nom_sous_disc, $aff_nom_groupe, $aff_nom_enseignant, $aff_coefficient,
		  	      $ecart_type_disciplinaire, $mediane_disciplinaire,
			      $surbrillance, $taille_fonte, $format_arrondi,
			      $theme, $coul_notes, $gestion, $droit_courant, $droit_prof)
  {
   If (($groupe_disc [0][0] > 0) And ($groupe_disc [1][0] != -1)) { $ligne_plus = 2 ; $gd = 1 ; } Else { $ligne_plus = 1 ; $gd = 0 ; }
   If ($table_annee == 1) { $ligne_plus++ ; }
   
   $ligne = "<table align=\"center\" bgcolor=\"".$theme [0][3]."\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\"" ;
   If ($table_annee == 1) { $ligne .= " border=\"1\" style=\"border:1px solid #000000;border-collapse:collapse\"" ; } Else { $ligne .= " style=\"border-collapse:collapse\"" ; }
   $ligne .= "><tr><td colspan=\"2\"" ; If ($ligne_plus > 1) { $ligne .= " rowspan=\"".$ligne_plus."\"" ; }
   $ligne .= ">&nbsp;&Eacute;l&egrave;ve&nbsp;&nbsp;</td>" ;
   // --------------------------- Affichage des groupes de disciplines ---------------------
   If ($gd == 1)
    {
     If (($table_annee == 1) And ($nbr_periodes > 1)) { $col_plus = $nbr_periodes+$colonne_moy_discipline ; } Else { $col_plus = 1 ; }
     For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
      {
       $ligne .= "<td align=\"center\" colspan=\"".($t_disc ["nombre_disc"][$num_groupe]*$col_plus+1+$aff_coeff)."\" bgcolor=\"".$theme [26][$num_groupe%$theme [26][0]+1]."\"><font size=\"-3\">" ;
       If ($groupe_disc [$num_groupe][0] > 0) { $ligne .= $groupe_disc [$num_groupe][1]."&nbsp;-&nbsp;Coeff.&nbsp;".Str_Replace (".",",",$groupe_disc [$num_groupe][4]) ; }
       Else { $ligne .= "Sans&nbsp;groupe&nbsp;-&nbsp;Coeff.&nbsp;1,00" ; } 
       $ligne .= "</font></td>" ;
      }
     // Moyenne non coefficientee
     $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"" ; If ($ligne_plus > 0) { $ligne .= " rowspan=\"".$ligne_plus."\"" ; }
     $ligne .= "></td><td align=\"center\" valign=\"middle\" bgcolor=\"".$theme [11][($num_groupe+1)%$theme [11][0]+1]."\"" ;
     If (($table_annee == 1) And ($nbr_periodes > 1)) { $ligne .= " colspan=\"".($nbr_periodes+$colonne_moy_annee)."\"" ; }
     If ($gd == 1) { $ligne .= " rowspan=\"2\"" ; }
     $ligne .= "><font size=\"-3\">&nbsp;Moyennes&nbsp;" ; If ($rang_eleve_non_coefficiente == 1) { $ligne .= "&nbsp;(Rang)" ; }
     $ligne .= "</font></td>" ;
     // Moyenne coefficientee
     If ($aff_coeff == 1)
      {
       $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"" ; If ($ligne_plus > 0) { $ligne .= " rowspan=\"".$ligne_plus."\"" ; }
       $ligne .= "></td><td align=\"center\" valign=\"middle\" bgcolor=\"".$theme [11][($num_groupe+2)%$theme [11][0]+1]."\"" ;
       If (($table_annee == 1) And ($nbr_periodes > 1)) { $ligne .= " colspan=\"".($nbr_periodes+$colonne_moy_annee)."\"" ; }
       If ($gd == 1) { $ligne .= " rowspan=\"2\"" ; }
       $ligne .= "><font size=\"-3\">&nbsp;Moyennes&nbsp;<br>&nbsp;coefficient&eacute;es&nbsp;" ; If ($rang_eleve_coefficiente == 1) { $ligne .= "(Rang)" ; }
       $ligne .= "</font></td>" ;
      }
     $ligne .= "</tr><tr>" ;
    }
   // --------------------------- Affichage des disciplines --------------------------------
   $compteur = 1 ;
   For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
    {
     For ($j = 1 ; $j <= $t_disc ["nombre_disc"][$num_groupe] ; $j++)
      {
       $ligne .= "<td align=\"center\" valign=\"top\" bgcolor=\"".$theme [11][($compteur+1)%$theme [11][0]+1]."\"" ;
       If (($table_annee == 1) And ($nbr_periodes > 1)) { $ligne .= " colspan=\"".($nbr_periodes+$colonne_moy_discipline)."\"" ; }
       $ligne .= "><font size=\"-3\">&nbsp;".Str_Replace (" ","&nbsp;",$t_disc ["disc"][$compteur])."&nbsp;" ;
       // Affiche la sous-discipline si existe
       If ($aff_nom_sous_disc == 1) { If ($t_disc ["sous_disc"][$compteur] != "") { $ligne .= "<br>&nbsp;".$t_disc ["sous_disc"][$compteur]."&nbsp;" ; } ElseIf ($t_disc ["general"]["ok_aff_sd"] == 1) { $ligne .= "<br>" ; } }
       // Affiche le groupe si existe
       If ($aff_nom_groupe == 1) { If ($t_disc ["nom_groupe"][$compteur] != "") { $ligne .= "<br>&nbsp;".$t_disc ["nom_groupe"][$compteur]."&nbsp;" ; } ElseIf ($t_disc ["general"]["ok_aff_grp"] == 1) { $ligne .= "<br>" ; } }
       // Affiche le nom de l'enseignant
       If ($aff_nom_enseignant == 1) { If ($t_disc ["nom_ens"][$compteur] != "") { $ligne .= "<br>&nbsp;".$t_disc ["nom_ens"][$compteur]."&nbsp;" ; } ElseIf ($t_disc ["general"]["ok_aff_nom"] == 1) { $ligne .= "<br>" ; } }
       // Affiche le coefficient
       If ($aff_coefficient == 1) { If ($aff_coeff == 1) { $ligne .= "<br>&nbsp;Coeff&nbsp;:&nbsp;<b>".Str_Replace (".", ",", $t_disc ["coeff_disc"][$compteur])."</b>&nbsp;" ; } }
       // Afficher le rafraichissement
       If (($droit_courant > $droit_prof) And ($t_disc ["id_sp"][$compteur] > 0))
        {
         $ligne .= "<br><a href=\"./moyennes.php?titre=-3&id_classe=".$t_disc ["general"]["id_classe"]."&periode=".$periode."&id_service_prof=".$t_disc ["id_sp"][$compteur]."\">" ;
         $ligne .= "<img src=\"../images/rafraichissement.png\" border=\"0\" title=\"Rafraichissement de la moyenne de '".$t_disc ["disc"][$compteur]."'.\"></a>" ;
        }
       $ligne .= "</font></td>" ;
       $compteur++ ;
      }
     If ($gd == 1)
      {
       $ligne .= "<td align=\"center\"" ; If ($table_annee == 1) { $ligne .= " rowspan=\"2\"" ; }
       $ligne .= " bgcolor=\"".$theme [26][$num_groupe%$theme [26][0]+1]."\"><font size=\"-3\">&nbsp;Moy.&nbsp;</font></td>" ;
       If ($aff_coeff == 1)
        {
         $ligne .= "<td align=\"center\"" ; If ($table_annee == 1) { $ligne .= " rowspan=\"2\"" ; }
         $ligne .= " bgcolor=\"".$theme [26][$num_groupe%$theme [26][0]+1]."\"><font size=\"-3\">&nbsp;Moy.&nbsp;Coeff.&nbsp;</font></td>" ;
        }
      }
    }
   If ($gd == 0)
    {
     // Moyenne non coefficientee
     $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"" ; If ($table_annee == 1) { $ligne .= " rowspan=\"2\"" ; }
     $ligne .= "></td><td align=\"center\" valign=\"middle\" bgcolor=\"".$theme [11][($num_groupe+1)%$theme [11][0]+1]."\"" ;
     If (($table_annee == 1) And ($nbr_periodes > 1)) { $ligne .= " colspan=\"".($nbr_periodes+$colonne_moy_annee)."\"" ; }
     $ligne .= "><font size=\"-3\">&nbsp;Moyennes&nbsp;" ; If ($rang_eleve_non_coefficiente == 1) { $ligne .= "&nbsp;(Rang)" ; }
     $ligne .= "</font></td>" ;
     // Moyenne coefficientee
     If ($aff_coeff == 1)
      {
       $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"" ; If ($table_annee == 1) { $ligne .= " rowspan=\"2\"" ; }
       $ligne .= "></td><td align=\"center\" valign=\"middle\" bgcolor=\"".$theme [11][($num_groupe+2)%$theme [11][0]+1]."\"" ;
       If (($table_annee == 1) And ($nbr_periodes > 1)) { $ligne .= " colspan=\"".($nbr_periodes+$colonne_moy_annee)."\"" ; }
       $ligne .= "><font size=\"-3\">&nbsp;Moyennes&nbsp;<br>&nbsp;coefficient&eacute;es&nbsp;" ; If ($rang_eleve_coefficiente == 1) { $ligne .= "(Rang)" ; }
       $ligne .= "</font></td>" ;
      }
    }
   $ligne .= "</tr>" ;
   // Affichage des numeros de periodes si bilan de l'annee
   If ($table_annee == 1)
    {
     $ligne .= "<tr>" ;
     $num_disc = 1 ;
     For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
      {
       For ($ii = 1 ; $ii <= $t_disc ["nombre_disc"][$num_groupe] ; $ii++)
        {
         For ($j = $min_periode ; $j <= $max_periode ; $j++)
          {
 	   $ligne .= "<td bgcolor=\"".$theme [11][($num_disc+1)%$theme [11][0]+1]."\" align=\"center\"><font size=\"-3\">".$j."</font></td>" ;
          }
         If ($colonne_moy_discipline == 1) { $ligne .= "<td bgcolor=\"".$theme [11][($num_disc+1)%$theme [11][0]+1]."\" align=\"center\"><font size=\"-3\">Moy.</font></td>" ; }
         $num_disc++ ;
        }
      }
     For ($k = 1 ; $k <= 1+$aff_coeff ; $k++)
      {
       For ($j = $min_periode ; $j <= $max_periode ; $j++)
        {
         $ligne .= "<td bgcolor=\"".$theme [11][($num_groupe+$k)%$theme [11][0]+1]."\" align=\"center\"><font size=\"-3\">".$j."</font></td>" ;
        }
       If ($colonne_moy_annee == 1) { $ligne .= "<td bgcolor=\"".$theme [11][($num_groupe+$k)%$theme [11][0]+1]."\" align=\"center\"><font size=\"-3\">Moy.</font></td>" ; }
      }
     $ligne .= "</tr>" ;
    }
   // --------------------------- Premier trait de separation ------------------------------
   If ($table_annee == 1) { $largeur_separation = (1+$t_disc ["general"]["nombre_disc"]*($colonne_moy_discipline+$nbr_periodes)+(1+$aff_coeff)*($nbr_periodes+$colonne_moy_annee+1)+$groupe_disc [0][0]*(1+$aff_coeff)) ; }
   Else { $largeur_separation = ($t_disc ["general"]["nombre_disc"]+$aff_coeff*2+$table_annee*$t_disc ["general"]["nombre_disc"]*4+4+(($gestion ["bulletin_cpe"]==3) Or ($gestion ["bulletin_cpe"] == 4))+$groupe_disc [0][0]*(1+$aff_coeff)) ; }
   $ligne .= "<tr bgcolor=\"".$theme [0][6]."\" height=\"1\"><td colspan=\"".$largeur_separation."\"></td></tr>" ;
   
   // --------------------------- Affichage des moyennes -----------------------------------
   For ($num_eleve = 1 ; $num_eleve <= $aff_ligne [0][0][0][0] ; $num_eleve++)
    {
     // Affichage Nom et prenom
     $ligne .= "<tr bgcolor=\"".$theme [10][($num_eleve-1) % $theme [10][0]+1]."\"" ;
     If (IsSet ($surbrillance) And ($surbrillance == 1))
      {
       $ligne .= " name=\"l".$num_eleve."\" onmouseover=\"javascript:document.getElementsByName('l".$num_eleve."')[0].bgColor='".$theme [0][27]."'\" " ;
       $ligne .= "onmouseout=\"javascript:document.getElementsByName('l".$num_eleve."')[0].bgColor='".$theme [10][($num_eleve-1) % $theme [10][0]+1]."'\"" ;
      }
     $ligne .= "><td colspan=\"2\">".$aff_ligne [$num_eleve][0][1][$periode]."</td>" ;
     // Notes disciplinaire
     $num_disc = 1 ;
     For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
      {
       For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
        {
         If (($num_disc%$theme [11][0] == 1) And (($num_eleve-1)%$theme [10][0] == 0)) { $couleur = $theme [11][($num_eleve-1)%$theme [11][0]+1] ; }
         Else { $couleur = $theme [10][($num_eleve-1)%$theme [10][0]+1] ; }
         For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
          {
           If (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode][$num_eleve]))
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc][$num_periode][$num_eleve], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy [$num_groupe][$num_disc][$num_periode][$num_eleve], 2, "", $coul_notes, $gestion ["max"]) ; }
          }
         If ($colonne_moy_discipline == 1)
          {
           If (Is_Numeric ($moy [$num_groupe][$num_disc]["moy"][$num_eleve]))
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc]["moy"][$num_eleve], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy [$num_groupe][$num_disc]["moy"][$num_eleve], 2, "", $coul_notes, $gestion ["max"]) ; }
          }
         $num_disc++ ;
        }
       If ($gd == 1)
        {
         If ($num_eleve%2 == 1) { $couleur = $theme [27][$num_groupe%$theme [27][0]+1] ; } Else { $couleur = $theme [10][($num_eleve-1)%$theme [10][0]+1] ; }
         If (Is_Numeric ($moy [$num_groupe]["moy_nc"]["moy"][$num_eleve]))
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_nc"]["moy"][$num_eleve], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, $moy [$num_groupe]["moy_nc"]["moy"][$num_eleve], 2, "", $coul_notes, $gestion ["max"]) ; }
         If ($aff_coeff == 1)
          {
           If (Is_Numeric ($moy [$num_groupe]["moy_c"]["moy"][$num_eleve]))
            { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_c"]["moy"][$num_eleve], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, $moy [$num_groupe]["moy_c"]["moy"][$num_eleve], 2, "", $coul_notes, $gestion ["max"]) ; }
          }
        }
      }
     // Trait de separation disciplines/moyennes non coeff
     $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td>" ;
     // Affichage moyenne non coefficientee
     If (($num_groupe % $theme [11][0] == 1) And (($num_eleve-1) % $theme [10][0] == 0)) { $couleur = $theme [11][($num_eleve-1) % $theme [11][0]+1] ; }
     Else { $couleur = $theme [10][($num_eleve-1) % $theme [10][0]+1] ; }
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       If (Is_Numeric ($moy ["moy_nc"]["moy"][$num_periode][$num_eleve]))
        {
         If ($rang_eleve_non_coefficiente == 1) { $note = arrondi_note ($moy ["moy_nc"]["moy"][$num_periode][$num_eleve], $format_arrondi)."(".$moy ["moy_nc"]["rang"][$num_periode][$num_eleve].")" ; }
         Else { $note = arrondi_note ($moy ["moy_nc"]["moy"][$num_periode][$num_eleve], $format_arrondi) ; }
         $ligne .= affiche_note ($couleur, "", $taille_fonte, $note, 2, "", $coul_notes, $gestion ["max"]) ;
        }
       Else
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_nc"]["moy"][$num_periode][$num_eleve], 2, "", $coul_notes, $gestion ["max"]) ; }
      }
     If ($colonne_moy_annee == 1)
      {
       If (Is_Numeric ($moy ["moy_nc"]["moy"]["moy"][$num_eleve]))
        {
         If ($rang_eleve_non_coefficiente == 1) { $note = arrondi_note ($moy ["moy_nc"]["moy"]["moy"][$num_eleve], $format_arrondi)."(".$moy ["moy_nc"]["rang"]["moy"][$num_eleve].")" ; }
         Else { $note = arrondi_note ($moy ["moy_nc"]["moy"]["moy"][$num_eleve], $format_arrondi) ; }
         $ligne .= affiche_note ($couleur, "", $taille_fonte, $note, 2, "", $coul_notes, $gestion ["max"]) ;
        }
       Else
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_nc"]["moy"]["moy"][$num_eleve], 2, "", $coul_notes, $gestion ["max"]) ; }
      }
     // Affichage moyenne coefficientee
     If ($aff_coeff == 1)
      {
       // Trait de separation moyennes non coeff/moyennes coeff
       $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td>" ;
       If (($num_groupe % $theme [11][0] == 0) And (($num_eleve-1) % $theme [10][0] == 0)) { $couleur = $theme [11][($num_eleve-1) % $theme [11][0]+1] ; }
       Else { $couleur = $theme [10][($num_eleve-1) % $theme [10][0]+1] ; }
       For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
        {
         If (Is_Numeric ($moy ["moy_c"]["moy"][$num_periode][$num_eleve]))
          {
           If ($rang_eleve_coefficiente == 1) { $note = arrondi_note ($moy ["moy_c"]["moy"][$num_periode][$num_eleve], $format_arrondi)."(".$moy ["moy_c"]["rang"][$num_periode][$num_eleve].")" ; }
           Else { $note = arrondi_note ($moy ["moy_c"]["moy"][$num_periode][$num_eleve], $format_arrondi) ; }
           $ligne .= affiche_note ($couleur, "", $taille_fonte, $note, 2, "", $coul_notes, $gestion ["max"]) ;
          }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_c"]["moy"][$num_periode][$num_eleve], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
       If ($colonne_moy_annee == 1)
        {
         If (Is_Numeric ($moy ["moy_c"]["moy"]["moy"][$num_eleve]))
          {
           If ($rang_eleve_coefficiente == 1) { $note = arrondi_note ($moy ["moy_c"]["moy"]["moy"][$num_eleve], $format_arrondi)."(".$moy ["moy_c"]["rang"]["moy"][$num_eleve].")" ; }
           Else { $note = arrondi_note ($moy ["moy_c"]["moy"]["moy"][$num_eleve], $format_arrondi) ; }
           $ligne .= affiche_note ($couleur, "", $taille_fonte, $note, 2, "", $coul_notes, $gestion ["max"]) ;
          }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_c"]["moy"]["moy"][$num_eleve], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
      }
     $ligne .= "</tr>" ;
    }
   // --------------------------- Deuxieme trait de separation -----------------------------
   $ligne .= "<tr bgcolor=\"".$theme [0][6]."\" height=\"1\"><td colspan=\"".$largeur_separation."\"></td></tr>" ;
   
   // --------------------------- Ligne des moyennes disciplinaires ------------------------
   $ligne .= "<tr bgcolor=\"".$theme [0][3]."\"><td colspan=\"2\" align=\"right\" bgcolor=\"".$theme [10][$aff_ligne [0][0][0][0]%$theme [10][0]+1]."\">&nbsp;Moyennes&nbsp;</td>" ;
   $num_disc = 1 ;
   For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
    {
     For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
      {
       For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
        {
         If (($num_disc%$theme [11][0] == 1) And ($aff_ligne [0][0][0][0]%$theme [10][0] == 0)) { $couleur = $theme [11][$aff_ligne [0][0][0][0]%$theme [11][0]+1] ; }
         Else { $couleur = $theme [10][$aff_ligne [0][0][0][0]%$theme [10][0]+1] ; }
         If (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode]["moy"]))
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc][$num_periode]["moy"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy [$num_groupe][$num_disc][$num_periode]["moy"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
       If ($colonne_moy_discipline == 1)
        {
         If (Is_Numeric ($moy [$num_groupe][$num_disc]["moy"]["moy"]))
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc]["moy"]["moy"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy [$num_groupe][$num_disc]["moy"]["moy"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
       $num_disc++ ;
      }
     If ($gd == 1)
      {
       If (Is_Numeric ($moy [$num_groupe]["moy_nc"]["moy"]["moy"]))
        { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_nc"]["moy"]["moy"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, $moy [$num_groupe]["moy_nc"]["moy"]["moy"], 2, "", $coul_notes, $gestion ["max"]) ; }
       If ($aff_coeff == 1)
        {
         If (Is_Numeric ($moy [$num_groupe]["moy_c"]["moy"]["moy"]))
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_c"]["moy"]["moy"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, $moy [$num_groupe]["moy_c"]["moy"]["moy"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
      }
    }
   // Trait de separation moyennes disciplinaires/moyenne generale
   $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td>" ;
   // Moyennes des moyennes disciplinaires non coefficientees
   If (($num_groupe % $theme [11][0] == 1) And ($num_eleve % $theme [10][0] == 0)) { $couleur = $theme [11][$aff_ligne [0][0][0][0] % $theme [11][0]+1] ; }
   Else { $couleur = $theme [10][$aff_ligne [0][0][0][0] % $theme [10][0]+1] ; }
   For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
    {
     If (Is_Numeric ($moy ["moy_nc"]["moy"][$num_periode]["moy"]))
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_nc"]["moy"][$num_periode]["moy"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
     Else
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_nc"]["moy"][$num_periode]["moy"], 2, "", $coul_notes, $gestion ["max"]) ; }
    }
   If ($colonne_moy_annee == 1)
    {
     If (Is_Numeric ($moy ["moy_nc"]["moy"]["moy"]["moy"]))
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_nc"]["moy"]["moy"]["moy"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
     Else
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_nc"]["moy"]["moy"]["moy"], 2, "", $coul_notes, $gestion ["max"]) ; }
    }
   If ($aff_coeff == 1)
    {
     // Trait de separation
     $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td>" ;
     // Moyennes des moyennes disciplinaires coefficientees
     If ((($num_groupe+1) % $theme [11][0] == 1) And (($num_eleve-1) % $theme [10][0] == 0)) { $couleur = $theme [11][$aff_ligne [0][0][0][0] % $theme [11][0]+1] ; }
     Else { $couleur = $theme [10][$aff_ligne [0][0][0][0] % $theme [10][0]+1] ; }
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       If (Is_Numeric ($moy ["moy_c"]["moy"][$num_periode]["moy"]))
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_c"]["moy"][$num_periode]["moy"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_c"]["moy"][$num_periode]["moy"], 2, "", $coul_notes, $gestion ["max"]) ; }
      }
     If ($colonne_moy_annee == 1)
      {
       If (Is_Numeric ($moy ["moy_c"]["moy"]["moy"]["moy"]))
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_c"]["moy"]["moy"]["moy"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_c"]["moy"]["moy"]["moy"], 2, "", $coul_notes, $gestion ["max"]) ; }
      }
    }
   $ligne .= "</tr>" ;
   
   // --------------------------- Troisieme trait de separation ----------------------------
   $ligne .= "<tr bgcolor=\"".$theme [0][6]."\" height=\"1\"><td colspan=\"".$largeur_separation."\"></td></tr>" ;
 
   // --------------------------- Ligne des minimum disciplinaires -------------------------
   $ligne .= "<tr bgcolor=\"".$theme [0][3]."\"><td colspan=\"2\" align=\"right\" bgcolor=\"".$theme [10][($aff_ligne [0][0][0][0]+1) % $theme [10][0]+1]."\">&nbsp;Minimum&nbsp;</td>" ;
   $num_disc = 1 ;
   For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
    {
     For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
      {
       If (($num_disc%$theme [11][0] == 1) And (($aff_ligne [0][0][0][0]+1)%$theme [10][0] == 0)) { $couleur = $theme [11][($aff_ligne [0][0][0][0]+1)%$theme [11][0]+1] ; }
       Else { $couleur = $theme [10][($aff_ligne [0][0][0][0]+1)%$theme [10][0]+1] ; }
       For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
        {
         If (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode]["min"]))
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc][$num_periode]["min"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy [$num_groupe][$num_disc][$num_periode]["min"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
       If ($colonne_moy_discipline == 1)
        {
         If (Is_Numeric ($moy [$num_groupe][$num_disc]["moy"]["min"]))
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc]["moy"]["min"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy [$num_groupe][$num_disc]["moy"]["min"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
       $num_disc++ ;
      }
     If ($gd == 1)
      {
       If (Is_Numeric ($moy [$num_groupe]["moy_nc"]["moy"]["min"]))
        { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_nc"]["moy"]["min"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, $moy [$num_groupe]["moy_nc"]["moy"]["min"], 2, "", $coul_notes, $gestion ["max"]) ; }
       If ($aff_coeff == 1)
        {
         If (Is_Numeric ($moy [$num_groupe]["moy_c"]["moy"]["min"]))
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_c"]["moy"]["min"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, $moy [$num_groupe]["moy_c"]["moy"]["min"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
      }
    }
   // Trait de separation
   $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td>" ;
   // Minimum des moyennes generales non coefficientees
   If ((($num_groupe+1)%$theme [11][0] == 1) And (($aff_ligne [0][0][0][0]+1)%$theme [10][0] == 0)) { $couleur = $theme [11][($aff_ligne [0][0][0][0]+1)%$theme [11][0]+1] ; }
   Else { $couleur = $theme [10][($aff_ligne [0][0][0][0]+1)%$theme [10][0]+1] ; }
   For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
    {
     If (Is_Numeric ($moy ["moy_nc"]["moy"][$num_periode]["min"]))
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_nc"]["moy"][$num_periode]["min"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
     Else
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_nc"]["moy"][$num_periode]["min"], 2, "", $coul_notes, $gestion ["max"]) ; }
    }
   If ($colonne_moy_annee == 1)
    {
     If (Is_Numeric ($moy ["moy_nc"]["moy"]["moy"]["min"]))
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_nc"]["moy"]["moy"]["min"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
     Else
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_nc"]["moy"]["moy"]["min"], 2, "", $coul_notes, $gestion ["max"]) ; }
    }
   // Minimum des moyennes generales coefficientees
   If ($aff_coeff == 1)
    {
     If ((($num_groupe+1)%$theme [11][0] == 1) And (($aff_ligne [0][0][0][0]+1)%$theme [10][0] == 0)) { $couleur = $theme [11][($aff_ligne [0][0][0][0]+1)%$theme [11][0]+1] ; }
     Else { $couleur = $theme [10][($aff_ligne [0][0][0][0]+1)%$theme [10][0]+1] ; }
     // Trait de separation
     $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td>" ;
     // Minimum des moyennes generales coefficientees
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       If (Is_Numeric ($moy ["moy_c"]["moy"][$num_periode]["min"]))
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_c"]["moy"][$num_periode]["min"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_c"]["moy"][$num_periode]["min"], 2, "", $coul_notes, $gestion ["max"]) ; }
      }
     If ($colonne_moy_annee == 1)
      {
       If (Is_Numeric ($moy ["moy_c"]["moy"]["moy"]["min"]))
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_c"]["moy"]["moy"]["min"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_c"]["moy"]["moy"]["min"], 2, "", $coul_notes, $gestion ["max"]) ; }
      }
    }
   $ligne .= "</tr>" ;
   
   // --------------------------- Quatrieme trait de separation ----------------------------
   $ligne .= "<tr bgcolor=\"".$theme [0][6]."\" height=\"1\"><td colspan=\"".$largeur_separation."\"></td></tr>" ;
   
   // --------------------------- Ligne des maximum disciplinaires -------------------------
   $ligne .= "<tr bgcolor=\"".$theme [0][3]."\"><td colspan=\"2\" align=\"right\" bgcolor=\"".$theme [10][($aff_ligne [0][0][0][0]+2)%$theme [10][0]+1]."\">&nbsp;Maximum&nbsp;</td>" ;
   $num_disc = 1 ;
   For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
    {
     For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
      {
       If (($num_disc%$theme [11][0] == 1) And (($aff_ligne [0][0][0][0]+2)%$theme [10][0] == 0)) { $couleur = $theme [11][($aff_ligne [0][0][0][0]+2)%$theme [11][0]+1] ; }
       Else { $couleur = $theme [10][($aff_ligne [0][0][0][0]+2)%$theme [10][0]+1] ; }
       For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
        {
         If (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode]["max"]))
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc][$num_periode]["max"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy [$num_groupe][$num_disc][$num_periode]["max"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
       If ($colonne_moy_discipline == 1)
        {
         If (Is_Numeric ($moy [$num_groupe][$num_disc]["moy"]["max"]))
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc]["moy"]["max"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy [$num_groupe][$num_disc]["moy"]["max"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
       $num_disc++ ;
      }
     If ($gd == 1)
      {
       If (Is_Numeric ($moy [$num_groupe]["moy_nc"]["moy"]["max"]))
        { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_nc"]["moy"]["max"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, $moy [$num_groupe]["moy_nc"]["moy"]["max"], 2, "", $coul_notes, $gestion ["max"]) ; }
       If ($aff_coeff == 1)
        {
         If (Is_Numeric ($moy [$num_groupe]["moy_c"]["moy"]["max"]))
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_c"]["moy"]["max"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, $moy [$num_groupe]["moy_c"]["moy"]["max"], 2, "", $coul_notes, $gestion ["max"]) ; }
        }
      }
    }
   // Trait de separation
   $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td>" ;
   // Maximum des moyennes generales non coefficientees
   If (($num_groupe%$theme [11][0] == 1) And (($aff_ligne [0][0][0][0]+1)%$theme [10][0] == 0)) { $couleur = $theme [11][($aff_ligne [0][0][0][0]+2)%$theme [11][0]+1] ; }
   Else { $couleur = $theme [10][($aff_ligne [0][0][0][0]+2)%$theme [10][0]+1] ; }
   For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
    {
     If (Is_Numeric ($moy ["moy_nc"]["moy"][$num_periode]["max"]))
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_nc"]["moy"][$num_periode]["max"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
     Else
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_nc"]["moy"][$num_periode]["max"], 2, "", $coul_notes, $gestion ["max"]) ; }
    }
   If ($colonne_moy_annee == 1)
    {
     If (Is_Numeric ($moy ["moy_nc"]["moy"]["moy"]["max"]))
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_nc"]["moy"]["moy"]["max"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
     Else
      { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_nc"]["moy"]["moy"]["max"], 2, "", $coul_notes, $gestion ["max"]) ; }
    }
   // Maximum des moyennes generales coefficientees
   If ($aff_coeff == 1)
    {
     If ((($num_groupe+1)%$theme [11][0] == 1) And (($aff_ligne [0][0][0][0]+1)%$theme [10][0] == 0)) { $couleur = $theme [11][($aff_ligne [0][0][0][0]+2)%$theme [11][0]+1] ; }
     Else { $couleur = $theme [10][($aff_ligne [0][0][0][0]+2)%$theme [10][0]+1] ; }
     // Trait de separation
     $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td>" ;
     // Maximum des moyennes generales coefficientees
     For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
      {
       If (Is_Numeric ($moy ["moy_c"]["moy"][$num_periode]["max"]))
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_c"]["moy"][$num_periode]["max"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_c"]["moy"][$num_periode]["max"], 2, "", $coul_notes, $gestion ["max"]) ; }
      }
     If ($colonne_moy_annee == 1)
      {
       If (Is_Numeric ($moy ["moy_c"]["moy"]["moy"]["max"]))
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy ["moy_c"]["moy"]["moy"]["max"], $format_arrondi), 2, "", $coul_notes, $gestion ["max"]) ; }
       Else
        { $ligne .= affiche_note ($couleur, "", $taille_fonte, $moy ["moy_c"]["moy"]["moy"]["max"], 2, "", $coul_notes, $gestion ["max"]) ; }
      }
    }
   $ligne .= "</tr>" ;
   
   If ($ecart_type_disciplinaire == 1)
    {
     //---------------------------- Cinquieme trait de separation ----------------------------
     $ligne .= "<tr bgcolor=\"".$theme [0][6]."\" height=\"1\"><td colspan=\"".$largeur_separation."\"></td></tr>" ;
     
     // --------------------------- Ligne des ecarts types disciplinaires -------------------------
     $ligne .= "<tr bgcolor=\"".$theme [0][3]."\"><td colspan=\"2\" align=\"right\" bgcolor=\"".$theme [10][($aff_ligne [0][0][0][0]+1) % $theme [10][0]+1]."\">&nbsp;&Eacute;carts&nbsp;types&nbsp;</td>" ;
     $num_disc = 1 ;
     For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
      {
       For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
        {
         If (($num_disc%$theme [11][0] == 1) And (($aff_ligne [0][0][0][0]+1)%$theme [10][0] == 0)) { $couleur = $theme [11][($aff_ligne [0][0][0][0]+1)%$theme [11][0]+1] ; }
         Else { $couleur = $theme [10][($aff_ligne [0][0][0][0]+1)%$theme [10][0]+1] ; }
         For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
          {
           If (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode]["ecart"]))
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc][$num_periode]["ecart"], $format_arrondi), 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, "-", 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
          }
         If ($colonne_moy_discipline == 1)
          {
           If (Is_Numeric ($moy [$num_groupe][$num_disc]["moy"]["ecart"]))
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc]["moy"]["ecart"], $format_arrondi), 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, "-", 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
          }
         $num_disc++ ;
        }
       If ($gd == 1)
        {
         If (Is_Numeric ($moy [$num_groupe]["moy_nc"]["moy"]["ecart"]))
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_nc"]["moy"]["ecart"], $format_arrondi), 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($couleur, "", $taille_fonte, "-", 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
         If ($aff_coeff == 1)
          {
           If (Is_Numeric ($moy [$num_groupe]["moy_c"]["moy"]["ecart"]))
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_c"]["moy"]["ecart"], $format_arrondi), 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, "-", 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
          }
        }
      }
     // Trait de separation
     $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td><td colspan=\"".(($max_periode-$min_periode+($colonne_moy_annee == 1))*3)."\"" ;
     If ($mediane_disciplinaire == 1) { $ligne .= " rowspan=\"2\"" ; }
     $ligne .= "></td></tr>" ;
    }
   If ($mediane_disciplinaire == 1)
    {
     If ($ecart_type_disciplinaire == 0)
      {
       //---------------------------- Sixieme trait de separation ----------------------------
       $ligne .= "<tr bgcolor=\"".$theme [0][6]."\" height=\"1\"><td colspan=\"".$largeur_separation."\"></td></tr>" ;
      }
     
     // --------------------------- Ligne des medianes disciplinaires -------------------------
     $ligne .= "<tr bgcolor=\"".$theme [0][3]."\"><td colspan=\"2\" align=\"right\" bgcolor=\"".$theme [10][($aff_ligne [0][0][0][0]+1+$ecart_type_disciplinaire) % $theme [10][0]+1]."\">&nbsp;M&eacute;diane&nbsp;</td>" ;
     $num_disc = 1 ;
     For ($num_groupe = 1 ; $num_groupe <= $groupe_disc [0][0] ; $num_groupe++)
      {
       For ($jj = 1 ; $jj <= $t_disc ["nombre_disc"][$num_groupe] ; $jj++)
        {
         If (($num_disc%$theme [11][0] == 1) And (($aff_ligne [0][0][0][0]+1+$ecart_type_disciplinaire)%$theme [10][0] == 0)) { $couleur = $theme [11][($aff_ligne [0][0][0][0]+1+$ecart_type_disciplinaire)%$theme [11][0]+1] ; }
         Else { $couleur = $theme [10][($aff_ligne [0][0][0][0]+1+$ecart_type_disciplinaire)%$theme [10][0]+1] ; }
         For ($num_periode = $min_periode ; $num_periode <= $max_periode ; $num_periode++)
          {
           If (Is_Numeric ($moy [$num_groupe][$num_disc][$num_periode]["mediane"]))
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc][$num_periode]["mediane"], $format_arrondi), 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, "-", 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
          }
         If ($colonne_moy_discipline == 1)
          {
           If (Is_Numeric ($moy [$num_groupe][$num_disc]["moy"]["mediane"]))
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, arrondi_note ($moy [$num_groupe][$num_disc]["moy"]["mediane"], $format_arrondi), 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($couleur, "", $taille_fonte, "-", 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
          }
         $num_disc++ ;
        }
       If ($gd == 1)
        {
         If (Is_Numeric ($moy [$num_groupe]["moy_nc"]["moy"]["mediane"]))
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_nc"]["moy"]["mediane"], $format_arrondi), 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
         Else
          { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, "-", 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
         If ($aff_coeff == 1)
          {
           If (Is_Numeric ($moy [$num_groupe]["moy_c"]["moy"]["mediane"]))
            { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, arrondi_note ($moy [$num_groupe]["moy_c"]["moy"]["mediane"], $format_arrondi), 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
           Else
            { $ligne .= affiche_note ($theme [27][$num_groupe%$theme [27][0]+1], "", $taille_fonte, "-", 2, "", $coul_notes_ecart, $gestion ["max"]) ; }
          }
        }
      }
     // Trait de separation
     $ligne .= "<td width=\"1\" bgcolor=\"".$theme [0][5]."\"></td><td colspan=\"".(($max_periode-$min_periode+($colonne_moy_annee == 1))*3)."\"" ;
     If ($mediane_disciplinaire == 1) { $ligne .= " rowspan=\"2\"" ; }
     $ligne .= "></td></tr>" ;
    }
   $ligne .= "</table>" ;
   Return $ligne ;
  }

 /**
 * Determine les rangs de tous les eleves
 * @param int $nombre Nombre de traitements a faire
 * @param array $stat_eleve Tableau de donnees eleve
 *                           Initialisation de la table avec les eleves
 *                           Pour $num_disc = 0 a nbr_disc-1 :
 *                            $stat_eleve [0][$num_disc][0] = $maxi_min ; // Minimum discipline
 *                            $stat_eleve [0][$num_disc][1] = $mini_max ; // Maximum discipline
 *                            $stat_eleve [0][$num_disc][2] = 0 ; // Somme de toutes les notes discipline
 *                            $stat_eleve [0][$num_disc][3] = 0 ; // Nombre de notes discipline
 *
 *                           Pour $num_eleve = 1 a nbr_eleve : 
 *                            $stat_eleve [$num_eleve][0][0] = id_eleve (Identifiant eleve)
 *                            $stat_eleve [$num_eleve][$num_disc][0] = Activation (si a 1)
 *                            $stat_eleve [$num_eleve][$num_disc][1] = Valeur de la moyenne
 *                            $stat_eleve [$num_eleve][$num_disc][2] = Nombre d'appreciation
 *                            Pour num_app = 1 a nbr_appreciation :
 *                             $stat_eleve [$num_eleve][$num_disc][2+$num_app] = Appreciation
 * @param array $ndisc Tableau de donnees discipline
 * @return array Tableau de rangs
 *               [0][0] = Numero max
 *               [numero_discipline][numero_eleve] = Numero rang
 */
 Function determine_rang_discipline ($nombre, $stat_eleve, $ndisc)
  {
   // Calcul du rang de la discipline
   $ok_rang = 0 ;
   $num_eleve = 1 ;
   //echo "<hr>" ;
   For ($j = 1 ; $j <= $nombre ; $j++)
    {
     If ($stat_eleve [$j][0][0] == $ndisc [$num_eleve][0])
      {
       //echo $ndisc [$num_eleve][0] ; //."->" ;
       If (Is_Numeric ($ndisc [$num_eleve][2]))
        {
         // On regarde le rang
         If ($ok_rang == 0)
          {
           // Premier enregistrement
           $rang [$num_eleve] = 1 ;
           //echo "->1 (".$ndisc [$num_eleve][2].")" ;
           $ok_rang = 1 ;
          }
         Else
          {
           // On test le rang par rapport aux autres
           $rang_temp = 0 ;
           $decalage = 0 ;
           //echo "(" ;
           For ($k = 1 ; $k < $num_eleve ; $k++)
            {
             If (($rang_temp == 0) Or (($rang_temp != 0) And ($note_temp > $ndisc [$k][2])))
              {
               If ($ndisc [$num_eleve][2] < $ndisc [$k][2])
                {
                 $rang_temp = $rang [$k] ;
                 $note_temp = $ndisc [$k][2] ;
                 $decalage = 1 ;
                }
               ElseIf ($ndisc [$num_eleve][2] == $ndisc [$k][2])
                {
                 $rang_temp = $rang [$k] ;
                 $note_temp = $ndisc [$k][2] ;
                 $k = $num_eleve ; // Arret boucle
                }
               //$rang_temp = $rang [$k] ;
               //$note_temp = $ndisc [$k][2] ;
              }
             //echo "|".$ndisc [$num_eleve][2]."<".$ndisc [$k][2]."|" ;
             //echo $rang_temp ;
            }
           //echo ") " ;
           // Deplacement des rangs
           If ($rang_temp == 0)
            {
             // Si le rang est nul alors on incremente tout le monde
             For ($k = 1 ; $k < $num_eleve ; $k++)
              {
               $rang [$k]++ ;
              }
             $rang [$num_eleve] = 1 ;
            }
           ElseIf ($decalage == 1)
            {
             // Sinon on incremente que les rangs superieurs
             For ($k = 1 ; $k < $num_eleve ; $k++)
              {
               If ($rang [$k] > $rang_temp) { $rang [$k]++ ; }
              }
             $rang [$num_eleve] = $rang_temp+1 ;
            }
           Else { $rang [$num_eleve] = $rang_temp ; }
           //echo "->".$rang [$num_eleve]." (".$ndisc [$num_eleve][2].")" ;
          }
        }
       Else
        {
         // N'a pas de moyenne pour cette discipline donc pas de rang
         $rang [$num_eleve] = -1 ;
         //echo "-1" ;
        }
       //echo " >>" ;
       //For ($k = 1 ; $k <= $num_eleve ; $k++) { echo $ndisc [$k][2]."(".$rang [$k].") " ; }
       //echo "<br>" ;
       $num_eleve++ ;
      }
     Else
      {
       // ce n'est pas un eleve suivant la discipline donc au suivant
      }
    }
   // Trouve le numero maximal des rangs
   $rang [0] = $rang [1] ;
   For ($j = 2 ; $j < $num_eleve ; $j++)
    {
     If ($rang [$j] > $rang [0]) { $rang [0] = $rang [$j] ; }
    }
   //For ($k = 1 ; $k < $num_eleve ; $k++) { echo $ndisc [$k][2]."(".$rang [$k].") " ; }
   //echo "<br>Max=".$rang [0]."<br>" ;
   Return $rang ;
  }
?>